1

나는 asp.net mvc3 프로젝트에서 작업하고 있습니다. DI 용으로 autofac을 사용하고 있습니다. 내가 속성이 는autofac mvc3 속성 주입

public class MustBeLoggedInAttribute : ActionFilterAttribute 
{ 
    private IUserContext Context {get;set;} 

    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!Context.IsLoggedIn) 
      filterContext.Result = new RedirectResult("https://stackoverflow.com/users/logon"); 
     base.OnActionExecuting(filterContext); 
    } 

} 

그래서 나는이 속성에 내 종속 IUserContext를 주입해야하는 말. 나는 어떻게 그것을 달성하겠습니까. 나는 actionfiterprovider에 코드를 여기 저기에 발견했다. 그러나 couldnt는 완전한 것을 발견한다.

도움을 받으실 수 있습니다.

감사

Parminder

Autofac 위키에 알렉스 마이어 - Gleaves '쓰기 업에서
+0

은'AuthorizeAttribute'은 당신이 원하는과 Autofac'이 속성 생성 프로세스의 속성을 주입하는'를위한 곳이없는 것을 수행 . – Eranga

+0

Eranga - AuthorizeAttribute는 기본적인 권한 부여에는 문제가 없지만 기본 사항 이후에는 넘어집니다. – Phill

+0

너희들은 요점을 얻지 못하고있다. 나는 proprty 주입에 대해 물어 보는 중이며 다른 목적으로도 사용할 수 있습니다. 코드는 여기에 불과합니다. – Parminder

답변

2

:

using Autofac.Integration.Mvc; 

var builder = new ContainerBuilder(); 
builder.RegisterFilterProvider(); 

이 : 당신은 RegisterFilterProvider() 확장 메서드 호출 할 필요가 http://code.google.com/p/autofac/wiki/Mvc3Integration#Filter_Attribute_Property_Injection

필요에 따라 필터 속성에 속성을 주입 할 것입니다 (내가 알 수있는 한, 속성 유형을 등록 할 필요가 없습니다.) 이것에 대한 일 Autofac 작동합니다.)이 도움이

희망,

+0

안녕하세요 Nicholas, 답장을 보내 주셔서 감사합니다. builder.RegisterController와 builder.RegisterFilterProvider 메소드를 찾을 수 없습니다. 문제가 될 수있는 곳을 제안 해주십시오. – Parminder

+0

환상적인 Nicholas, Autofac.Integration.Mvc를 사용하여 포함하는 것을 잊었습니다. 고마워. – Parminder