首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

接口不能实例化?该如何处理

2013-03-21 
接口不能实例化? IEngineFeatureSnapAgent featureSnapAgent new EngineFeatureSnap()虽然明明知道,接

接口不能实例化?
 IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap();

虽然明明知道,接口是不能实例化的,但是我今天又看到了将接口new的语句,而且代码可以正常运行,没有任何错误。第一次见到将接口new是在将datagridview里的数据导入excel里时:

            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
而且也能正常运行。

真是搞不懂,明明接口不能实例化,那为什么却能像实例化类一样实例化接口呢???而且完全正常使用。这到底是“实例化”吗??

[解决办法]
.NET提供Interop 程序集,它用作托管和非托管代码之间的桥梁,将 COM 对象成员映射为等价的 .NET 托管成员。
[解决办法]
对于原有的Com文件,比如ABC.dll
当你在.net 环境下引用的时候,你会发现,实际引用的文件是Interop.ABC.dll
这正是由于.net在中间做了处理,将原来的ABC.dll翻译为了.Net可以识别的元数据清单

热点排行