通用方法中的Cast接口

时间:2009-11-25 12:37:35

标签: c# reflection interface generics

我是界面的新用户。我的问题是我创建了一个具有两个参数的Generic类 一个是对象类型另一个是接口类型。现在在类中我可以使用Reflection来转换对象,但我没有获得构建接口的方法。

1 个答案:

答案 0 :(得分:2)

你在寻找像

这样的东西吗?
public class Factory<TClass, TInterface> where TClass : TInterface, new()
{
    public TInterface Create()
    {
        return new TClass();
    }
}

'TClass:TInterface,new()'是设置TClass和TInterface之间关系的部分。如果省略TInterface,那么你将无法转换为接口。

然后可以调用

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

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