我遇到一个接口居然可以被实例化,求解释
------解决方案--------------------因为该COM接口被标记为[CoClass(typeof(XX))]。
coclass就是实现COM接口的实体。你可以理解XX就是该实体,而C#允许该种写法(可能为了兼容老版本)。
------解决方案--------------------这是C#玩的魔术。事实上它会在幕后产生一个com存根类。
------解决方案--------------------
作了个测试
[CoClass(typeof(TestInterClass))]
public interface TestInter
{ }
public class TestInterClass
{
public TestInterClass()
{ }
}
TestInter test = new TestInter(); //wrong