c# - 如何简化同一开放通用实现的大量封闭通用版本的注册?

标签 c# .net castle-windsor ioc-container fluent-interface

有没有一种流畅的写法:

var someTypes = GetType()
    .Assembly
    .GetTypes()
    .Where(x => someFilter == true);

foreach(var someType in someTypes)
{
    var genericInterface = typeof(IFoo<>).MakeGenericType(someType);

    var genericImplementation = typeof(Foo<>).MakeGenericType(someType);

    container.Register(
       Component.For(genericInterface)
            .ImplementedBy(genericImplementation));
}

最佳答案

IGenericServiceStrategy 是您所追求的(在@maxlego 所说的之上,这是正确的)

See this有关详细信息和示例。

关于c# - 如何简化同一开放通用实现的大量封闭通用版本的注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795982/

相关文章:

c# - 我需要取消订阅动态菜单项事件吗?

c# - 继承调用错误的 Equals() 方法

.net - 什么可能导致进行 HttpWebRequest 调用的巨大开销?

asp.net-mvc - 带参数的 MvcContrib Windsor 设置组件

c# - 在 C# 中更改字体样式(粗体、斜体、粗斜体)

c# - 有没有办法为枚举类型实现一元运算符?

c# - Response.cookies出现在request.cookies中

.net - 在当前行的开头插入字符 (vb.net)

unit-testing - 在 CaSTLe Windsor 3 中,覆盖单元测试中的现有组件注册