Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在StructureMap中注入实现特定通用接口的对象列表?_C#_Structuremap - Fatal编程技术网

C# 如何在StructureMap中注入实现特定通用接口的对象列表?

C# 如何在StructureMap中注入实现特定通用接口的对象列表?,c#,structuremap,C#,Structuremap,我有两个接口: public interface IResult {} public interface IDataFetcher<T> where T : IResult { T Fetch(); } 当我在MyHandler的构造函数中设置断点时,fetchers变量为空(非空) 我需要做什么来解决这个问题?为了确保fetchers中充满了IDataFetcher?的实现,经过几个小时的尝试和谷歌搜索,我找到了答案。我做的每件事都是对的,除了一件事:让IDataFetc

我有两个接口:

public interface IResult
{}

public interface IDataFetcher<T> where T : IResult
{
   T Fetch();
}
当我在
MyHandler
的构造函数中设置断点时,
fetchers
变量为空(非空)


我需要做什么来解决这个问题?为了确保fetchers中充满了
IDataFetcher

的实现,经过几个小时的尝试和谷歌搜索,我找到了答案。我做的每件事都是对的,除了一件事:让IDataFetcher协变:

public interface IDataFetcher<out T> where T : IResult
{}
公共接口IDataFetcher,其中T:IResult
{}
这非常有意义,因为我在泛型类型中使用了具体类型:

public class SomeClass : IResult
{
}

public class ConcreteFetcher : IDataFetcher<SomeClass>
{
    public SomeClass Fetch()
    {
        // do something
    }
}
public类SomeClass:IResult
{
}
公共类ConcreteFetcher:IDataFetcher
{
公共类获取()
{
//做点什么
}
}
干杯

public interface IDataFetcher<out T> where T : IResult
{}
public class SomeClass : IResult
{
}

public class ConcreteFetcher : IDataFetcher<SomeClass>
{
    public SomeClass Fetch()
    {
        // do something
    }
}