###问题来源:
在调用ESRI.ArcGIS.esriSystem中的IObjectCopy接口时我通过它的实现类ObjectCopyClass初始化对其赋值时出现了无法嵌入互操作类型的错误

但是如果对IObjectCopy的赋值为ObjectCopy的实例对象IObjectCopy objectCopy = new ObjectCopy();则完全没有问题。

但在我们所学知识里接口和抽象类都是不能直接实例(new)的,肯定通不过编译器的编译。
###原因:
首先看一下两个接口和一个实现接口的类的源码:
实现接口的类ObjectCopyClass:
实现了两个接口IObjectCopy和ObjectCopy;
包含一个构造函数,和两个方法。

接口ObjectCopy
继承了IObjectCopy接口。

本文介绍了在ArcGIS Engine开发中遇到的无法嵌入互操作类型错误,分析了错误原因——COM组件属性设置不当。解释了嵌入互操作类型的概念,并探讨了C#中通过接口实现类成功实例化的原因,涉及接口与CoClass特性。
最低0.47元/天 解锁文章
321

被折叠的 条评论
为什么被折叠?



