使用Unity,我想根据以下约定自动注册程序集中的所有接口/类组合:
INameOfObject > NameOfObject
当启用默认约定时,StructureMap会执行此操作。
我为它编写了以下方法:
private static IUnityContainer RegisterITypesOf(this IUnityContainer container, string assemblyName)
{
Assembly.Load(assemblyName)
.GetTypes()
.Where(t => t.GetInterfaces().Any(i => i.Name == "I" + t.Name))
.ForEach(t => container.RegisterType(t.GetInterface("I" + t.Name, false), t));
return container;
}
我的问题是:
发布于 2012-03-16 02:06:30
我想要的和你一样;基于约定的配置ala结构映射,并为它创建了一个库。您可以在NuGet上下载,并在我的github page上阅读一些文档
希望这能有所帮助!
发布于 2015-04-25 02:56:38
Unity 3.5.140.0具有内置的功能,可以注册与使用它的类具有相似名称的接口。
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
}
发布于 2012-03-14 20:40:24
Unity不支持约定。但是TecX project on codeplex包含一个基于结构映射配置的enhanced configuration engine for Unity。
https://stackoverflow.com/questions/9701882
复制相似问题