我正在使用 MS Unity 容器。我所有的模块都需要使用一个公共对象,我在其中添加字典中的值,如下所示:
Dictionary<Type, Func<BaseItem, BaseItemViewModel>> Maps
当我使用 viewModel 时,这个会收到通用字典。
一位小伙伴告诉我一些关于配置 Unity 的事情,但我对 Unity 的了解很少。
我正在使用 MS Unity 容器。我所有的模块都需要使用一个公共对象,我在其中添加字典中的值,如下所示:
Dictionary<Type, Func<BaseItem, BaseItemViewModel>> Maps
当我使用 viewModel 时,这个会收到通用字典。
一位小伙伴告诉我一些关于配置 Unity 的事情,但我对 Unity 的了解很少。
创建一个服务并统一注册它。
例如
public interface ICommonDataService
{
Dictionary<Type,Func<BaseItem, BaseItemViewModel>> GetMaps();
}
public class CommonDataService : ICommonDataService
{
public Dictionary<Type,Func<BaseItem, BaseItemViewModel>> GetMaps()
{
//Implementation
}
}
然后在你的引导程序中注册统一
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<ICommonDataService, CommonDataService>(new ContainerControlledLifetimeManager());
}
然后你可以有这个注入或使用ServiceLocator从接口解析实例...