mshtml.dll与switch语句及嵌入互操作类型

    WINFORM工程引用mshtml.dll时,如果选择【嵌入互操作类型True】,下面的switch语句就会报错:

mshtml.dll与switch语句及嵌入互操作类型

    而将它设置为False,就没事!!什么情况?

mshtml.dll与switch语句及嵌入互操作类型

什么是嵌入互操作类型?

mshtml.dll与switch语句及嵌入互操作类型

现在可以使用 COM 互操作程序集,而不要求该程序集在运行时必须存在。目的是减轻将 COM 互操作程序集与您的应用程序一起部署的负担。您通过将引用上的“嵌入式互操作类型”属性设置为 true,告诉编译器为您将互操作类型嵌入到 Visual Studio 中。

1.”嵌入互操作类型”中的嵌入就是引进、导入的意思,类似于c#中using,c中include的作用,目的是告诉编译器是否要把互操作类型引入。

2.“互操作类型”实际是指一系列Com组件的程序集,是公共运行库中库文件,类似于编译好的类,接口等。

3.“嵌入互操作类型”设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。

而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息。

 

参考文献:

https://msdn.microsoft.com/zh-cn/library/dd997297

http://www.cnblogs.com/pnljs/archive/2012/02/20/2359313.html