首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Unity自动注册所有接口

使用Unity自动注册所有接口
EN

Stack Overflow用户
提问于 2012-03-14 20:21:45
回答 4查看 10K关注 0票数 19

使用Unity,我想根据以下约定自动注册程序集中的所有接口/类组合:

代码语言:javascript
复制
INameOfObject > NameOfObject

当启用默认约定时,StructureMap会执行此操作。

我为它编写了以下方法:

代码语言:javascript
复制
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;
}

我的问题是:

  • 有没有内置的函数可以做同样的事情?
  • 如果没有,我的代码可以提高性能吗?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-16 02:06:30

我想要的和你一样;基于约定的配置ala结构映射,并为它创建了一个库。您可以在NuGet上下载,并在我的github page上阅读一些文档

希望这能有所帮助!

票数 3
EN

Stack Overflow用户

发布于 2015-04-25 02:56:38

Unity 3.5.140.0具有内置的功能,可以注册与使用它的类具有相似名称的接口。

代码语言:javascript
复制
public static void RegisterTypes(IUnityContainer container)
{
    container.RegisterTypes(
    AllClasses.FromLoadedAssemblies(),
    WithMappings.FromMatchingInterface,
    WithName.Default);
}
票数 16
EN

Stack Overflow用户

发布于 2012-03-14 20:40:24

Unity不支持约定。但是TecX project on codeplex包含一个基于结构映射配置的enhanced configuration engine for Unity

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9701882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档