2012-05-28 2 views
2
ServiceSTack MVC의 파워팩과

Asp.Net의 MVC는 AppHost의 행이ServiceStack 어떻게 MyController에 내 사용자 정의 IRepository <T> 속성을 autowire하기 수 <T>

:

ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container)); 

그래서이 내 코드

입니다
public class BaseController<T>:Controller 
{ 
    protected IRepository<T> Repository {get;set;} 

    public ActionResult Detail(T t){} 
} 

public class CarController:BaseController<Car> 
{ 
} 

이 코드는 App.Host에서 사용합니다.

container.Register<IRepository<Car>>(c => new CarRepository()); 

어떻게하면 AutoWire Repository를 사용할 수 있습니까? , 당신은이 MVC PowerPack 당신에게 많은 혜택을 제공하는 대신 ServiceStackController에서 상속 할 수 있습니다 사용하는 경우 또한

public class BaseController<T>:Controller 
{ 
    public IRepository<T> Repository {get;set;} 

    public ActionResult Detail(T t){} 
} 

public class CarController:BaseController<Car> {} 

:

답변

2

만 공용 속성 또는 생성자 주입, 그래서 함께 저장소 대중을 평가 해보십시오 ServiceStack의 JSON 직렬화를 사용하는 것과 마찬가지로 ServiceStack의 공유 Cache 및 세션 공급자에 액세스 할 수있을뿐만 아니라 MVC 컨트롤러와 ServiceStack 웹 서비스 (사용하고있는 경우) 모두에서 ServiceStack Authentication/Authorization 기능을 공유 할 수 있습니다.

+0

예를 들어 다른 속성을 autowire하려면 어떻게해야합니까? XProvider 클래스에 XRepository가 있습니까? 추신 : 저는이 질문이 주요 질문과 밀접하게 관련되어 있기 때문에 여기에서 질문했습니다. – ozz

+0

가장 큰 생성자와 모든 public 속성에는 IOC에 등록한 것과 동일한 유형의 인스턴스가 삽입됩니다. 자세한 내용을 보려면 https://github.com/ServiceStack/ServiceStack/wiki/The-IoC-container – mythz

+0

Neihter container.RegisterAutoWiredAs >(); > (c => new XRepository());를 등록하십시오. container.RegisterAutoWired >(); 공장? – ozz

관련 문제