Dav*_*vid 18 .net c# inversion-of-control unity-container
使用Unity,我想根据以下约定自动注册程序集中的所有接口/类组合:
INameOfObject > NameOfObject
Run Code Online (Sandbox Code Playgroud)
当启用默认约定时,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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
aal*_*ajr 13
Unity 3.5.140.0内置了注册接口的功能,其名称与使用它的类相似.
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
}
Run Code Online (Sandbox Code Playgroud)