问题描述
问题描述
我有一个接口定义IFoo<TBar> : IFoo
和一个方法CreateFooUsingBarType(Type barType)
.我需要使用给定定义了TBar
的指定System.Type
instance 的依赖项注入工具来解析IFoo<TBar>
的方法.不要问我怎么到这里来了.我陷入了这些界限.
I have an interface definition IFoo<TBar> : IFoo
and a method CreateFooUsingBarType(Type barType)
. I need the method to resolve an IFoo<TBar>
using a dependency injection tool given a specified System.Type
instance that defines TBar
. Don't ask how I ended up here. I am stuck within these boundaries.
示例
public IFoo CreateFooUsingBarType(Type barType)
{
var iocScope = GetScope();
// TODO: Create a System.Type for IFoo<TBar>
// where TBar is barType. Blarghity blargh.
var fooType = (Type)null;
return iocScope.Resolve(fooType);
}
我已经尝试过 TypeBuilder ,但我觉得它对此过于杀伤. .NET是否公开了用于实现此目的的其他API?
I've tried mucking around with TypeBuilder but I'm getting the sense that it's overkill for this. Does .NET expose a different API for achieving this?
谢谢.
推荐答案
您可以使用 MakeGenericType 方法:
var fooType = typeof(IFoo<>).MakeGenericType(barType);
这篇关于为具有已知T类型的通用接口构造一个System.Type的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!