关于c#:在通用方法中使用Cast接口

Cast Interface in generic method

我是界面的新用户。我的问题是我已经创建了一个具有两个参数的泛型类一种是对象类型,另一种是接口类型。现在在类中,我可以使用反射来强制转换对象,但我没有找到强制转换接口的方法。


你在找类似的东西吗

1
2
3
4
5
6
7
public class Factory<TClass, TInterface> where TClass : TInterface, new()
{
    public TInterface Create()
    {
        return new TClass();
    }
}

"where tclass:tinterface,new()"是建立tclass与tinterface关系的部分。如果不使用Tinterface,则无法强制转换到接口。

然后可以像这样调用

1
2
var factory = new Factory<MySuperService, IService>();
IService service = factory.Create();

如果这不能解决您的问题,请提供代码来说明问题。