我想在StructureMap中注册一个接口作为开放泛型,并且能够获取指定约束的实现实例:
interface ITestInterface<T> { }
class TestGenericClassOne<T> : ITestInterface<T> { }
class TestGenericClassTwo<T> : ITestInterface<T> { }
[...]
_container.Configure(expression => expression.Scan(scanner =>
{
scanner.AssemblyContainingType(typeof(ITestInterface<>));
scanner.ConnectImplementationsToTypesClosing(typeof(ITestInterface<>));
}));
// Should return a TestGenericClassOne<int> and a TestGenericClassTwo<int>.
var actual = _container.GetAllInstances<ITestInterface<int>>().ToArray();
有没有办法实现这个目标?