解决方案 »

  1.   

    因为该COM接口被标记为[CoClass(typeof(XX))]。
    coclass就是实现COM接口的实体。你可以理解XX就是该实体,而C#允许该种写法(可能为了兼容老版本)。
      

  2.   

    感觉也是 [CoClass(typeof(XX))]。这个问题,不过说不出个所以然,学习了
      

  3.   

    这是C#玩的魔术。事实上它会在幕后产生一个com存根类。
      

  4.   

    作了个测试    [CoClass(typeof(TestInterClass))]
        public interface TestInter
        { }
         public class TestInterClass
         {
             public TestInterClass()
             { }
         }TestInter test = new TestInter(); //wrong
      

  5.   

    作了个测试    [CoClass(typeof(TestInterClass))]
        public interface TestInter
        { }
         public class TestInterClass
         {
             public TestInterClass()
             { }
         }TestInter test = new TestInter(); //wrong

    那是当然的。TestInter光有CoClass Attribute,但是不是COM Stub有什么用?
    所谓魔术,就是障眼法。你看着魔术师用手帕一抹,就变出钱来了,那是因为人家本来有钱。你拿着手帕没有钱,怎么能变出钱来呢。
      

  6.   

    手里没有多少分了,对不起大家。这几天在调试SharpDX,这个就没怎么关注,大家如此热心,甚感惶恐,学习了。