简单的注射器 - 部分类注射

时间:2016-01-18 14:48:28

标签: c# c#-4.0 dependency-injection entity-framework-6 simple-injector

如何使用partial class ??

配置注入
container.RegisterPerWebRequest<IDataContextAsync, DataBaseContext>();
container.RegisterPerWebRequest<IStoredProcedureContext, DataBaseContext>();

我的代码:

public partial class DataBaseContext : DataContext
public partial class DataBaseContext : IStoredProcedureContext

错误:

  

- [Torn Lifestyle] IStoredProcedureContext的注册映射到与IDataContextAsync的注册相同的实现和生活方式。它们都映射到DataBaseContext(Web请求)。这将导致每个注册解析到另一个实例:每个注册在单个Web请求期间将拥有自己的实例。有关详细信息,请参阅Error属性   警告。请参阅https://simpleinjector.org/diagnostics如何解决问题以及如何压制个别警告。

1 个答案:

答案 0 :(得分:4)

请参阅here

var container = new Container();
container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

var registration = Lifestyle.Scoped.CreateRegistration<DataBaseContext>(container);
container.AddRegistration(typeof(IStoredProcedureContext), registration);

container.Verify();