Che*_*Cat 3 dependency-injection unity-container .net-core mediatr
我在我的 .NET Core 2.1 项目上使用了Unity DI Container v5.8.4,我需要注册Mediator对象,我正在使用这里建议的配置。
现在我已经更新到v5.9.4并且我有一个关于RegisterType方法参数的错误:
无法从“Unity.Lifetime.LifetimeManager”转换为“Unity.Injection.InjectionMember”
这是我的实际代码:
public static IUnityContainer RegisterMediator(this IUnityContainer container, LifetimeManager lifetimeManager)
{
return container.RegisterType<IMediator, Mediator>(lifetimeManager)
.RegisterInstance<ServiceFactory>(type =>
{
var enumerableType = type
.GetInterfaces()
.Concat(new[] { type })
.FirstOrDefault(t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(IEnumerable<>));
return enumerableType != null
? container.ResolveAll(enumerableType.GetGenericArguments()[0])
: container.IsRegistered(type)
? container.Resolve(type)
: null;
});
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能更新注册码?
他们RegisterType在这个PR 中更改了 的签名,现在ITypeLifetimeManager使用LifetimeManager.
在HierarchicalLifetimeManager目前正在实施ITypeLifetimeManager的界面让你只需要更新lifetimeManager您的参数RegisterMediator方法:
public static IUnityContainer RegisterMediator(this IUnityContainer container,
ITypeLifetimeManager lifetimeManager)
{
return container.RegisterType<IMediator, Mediator>(lifetimeManager)
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |