0

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

Dictionary<Type,  Func<BaseItem, BaseItemViewModel>> Maps

当我使用 viewModel 时,这个会收到通用字典。

一位小伙伴告诉我一些关于配置 Unity 的事情,但我对 Unity 的了解很少。

4

1 回答 1

1

创建一个服务并统一注册它。

例如

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从接口解析实例...

于 2012-07-17T12:31:00.960 回答