2010-07-13 18 views

cevap

19

ControllerContext özelliği, miras hiyerarşinizdeki temel kuruculardan birine atanmamış. Bir denetleyici bir denetleyici fabrika tarafından oluşturulur ve ControllerContext özelliğine atanmadan geri döndürülür.

Initialize yöntem sanal Execute yöntemi çağrısından çağrılır
protected virtual void Initialize(RequestContext requestContext) 
{ 
    this.ControllerContext = new ControllerContext(requestContext, this); 
} 

:

protected virtual void Execute(RequestContext requestContext) 
{ 
    if (requestContext == null) 
    { 
     throw new ArgumentNullException("requestContext"); 
    } 
    this.VerifyExecuteCalledOnce(); 
    this.Initialize(requestContext); 
    this.ExecuteCore(); 
} 

Bu, en erken noktaya gelir

yansıtıcı kullanarak, atama yer alır nereye bakabilirsiniz ControllerContext özelliğine Execute veya Initialize yöntemini geçersiz kılarak erişebilirsiniz (ancak önce base.Execute veya base.Initialize numaralı telefonu arayın):

protected override void Execute(RequestContext requestContext) 
{ 
    base.Execute(requestContext); 

    // .ControllerContext is available from this point forward. 
} 

protected override void Initialize(RequestContext requestContext) 
{ 
    base.Initialize(requestContext); 

    // .ControllerContext is available from this point forward. 
} 
ikincisi ( Initialize) çerçevenin parçalar, söz konusu özelliği olmasına bağlıdır olacak gibi (tavsiye edilmez atama kendiniz ele sürece, ControllerContext özelliğini kullanabilirsiniz butlak erken noktasıdır o anda atandı).

Bu yardımcı olur umarım.

+0

Teşekkürler. İhtiyacım olan bu. –

İlgili konular