C# UNITY女士:如何使用字典访问我的所有模块?

C# UNITY女士:如何使用字典访问我的所有模块?,c#,prism,unity-container,containers,ioc-container,C#,Prism,Unity Container,Containers,Ioc Container,我正在使用MS Unity容器。我的所有模块都需要使用一个公共对象,我在其中添加字典中的值,如下所示: Dictionary<Type, Func<BaseItem, BaseItemViewModel>> Maps 字典地图 当我使用viewModel时,它会收到通用字典 一位合作伙伴告诉我一些有关配置Unity的信息,但我对Unity的了解很少。创建一个服务并向Unity注册 比如说 public interface ICommonDataService {

我正在使用MS Unity容器。我的所有模块都需要使用一个公共对象,我在其中添加字典中的值,如下所示:

Dictionary<Type,  Func<BaseItem, BaseItemViewModel>> Maps
字典地图
当我使用viewModel时,它会收到通用字典


一位合作伙伴告诉我一些有关配置Unity的信息,但我对Unity的了解很少。

创建一个服务并向Unity注册

比如说

public interface ICommonDataService
{
     Dictionary<Type,Func<BaseItem, BaseItemViewModel>> GetMaps();
}

public class CommonDataService : ICommonDataService
{
    public Dictionary<Type,Func<BaseItem, BaseItemViewModel>> GetMaps()
    {
         //Implementation
    }
}
公共接口ICommondDataService
{
字典GetMaps();
}
公共类CommonDataService:ICommonDataService
{
公共字典GetMaps()
{
//实施
}
}
然后在你的引导程序中向unity注册

protected override void ConfigureContainer()
    {
        base.ConfigureContainer();
        Container.RegisterType<ICommonDataService, CommonDataService>(new ContainerControlledLifetimeManager());
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
RegisterType(新的ContainerControlledLifetimeManager());
}
然后您可以将其注入或用于从接口解析实例