我想知道是否有一种方法可以在内部连接嵌套泛型,StructureMap
而无需指定内部类型或创建特定于类型的接口。我意识到这有点令人困惑,因此编码示例可能是对我正在寻找的功能的更好解释。
public interface IParser<T> { }
public class Range<T> where T : struct { }
public class RangeParser<T> : IParser<Range<T>> { }
从理论上讲,我希望能够遵循 StructureMap 的开放通用功能,例如:
For(typeof(IRepository<>)).Use(typeof(Repository<>)).
我意识到我不能这样做:
For(typeof(IParser<Range<>>).Use(typeof(RangeParser<>));
我试图通过反射来做到这一点MakeGenericType
,但是,我似乎遇到了这种方法的问题。
var requestedType = typeof(IParser<>).MakeGenericType(typeof(Range<>));
For(requestedType).Use(typeof(RangeParser<>));
任何想法将不胜感激。