asp.net-mvc - ServiceStack 如何在 MyController<T> 上 Autowiring 自定义 IRepository<T> 属性

标签 asp.net-mvc dependency-injection servicestack

Asp.Net mvc 与 ServiceSTack Mvc powerpack

AppHost中有一行:

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 存储库?

最佳答案

仅注入(inject)公共(public)属性或构造函数,因此请尝试将存储库设为公共(public):

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

   public ActionResult Detail(T t){}
}

public class CarController:BaseController<Car> {}

此外,如果您使用 MVC PowerPack您可能想继承ServiceStackController相反,这给你带来了很多好处,比如使用ServiceStack的JSON序列化,可以访问ServiceStack的共享Cache和 session 提供者以及能够共享 ServiceStack Authentication/Authorization MVC Controller 和 ServiceStack 上的功能网络服务(如果您正在使用任何服务)。

关于asp.net-mvc - ServiceStack 如何在 MyController<T> 上 Autowiring 自定义 IRepository<T> 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791489/

相关文章:

java - 依赖注入(inject) - Eclipse e4 应用程序到 eclipse 插件

c# - 在运行时注入(inject)依赖的最佳方式

c# - Servicestack FallbackRoute 无法识别尾部斜线

redis - 如何在 ServiceStack Redis 客户端中清除所有 X 类型的实例

Java:按名称实例化具体实现

.net - 无法使用 HTTPS 使 ServiceStack 在 IIS6 中工作

jquery - 为当前菜单设置 css 事件类

c# - 如何使用同一模型中的两个下拉菜单实例?

asp.net-mvc - 为 MVC 创建 Web 导航帮助器类

javascript - 从ajax返回的数据对象中读取多个变量