Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在我的一个VS2012解决方案中接受隐式转换,但在另一个解决方案中不接受隐式转换。为什么?_C#_Visual Studio 2012_Vsto - Fatal编程技术网

C# 在我的一个VS2012解决方案中接受隐式转换,但在另一个解决方案中不接受隐式转换。为什么?

C# 在我的一个VS2012解决方案中接受隐式转换,但在另一个解决方案中不接受隐式转换。为什么?,c#,visual-studio-2012,vsto,C#,Visual Studio 2012,Vsto,在VS 2012中,我有两个C#解决方案 以下显式转换适用于两种解决方案: Excel.Range rng = (Excel.Range)Date.DataRange.Cells[1]; 以下隐式转换在一个解决方案中有效,但在另一个解决方案中生成错误: Excel.Range rng = Date.DataRange.Cells[1]; 隐式转换在其中一个项目中有效而在另一个项目中无效的原因可能是什么 编辑:我得到的错误消息是“object”不包含“Group”的定义,并且找不到接受“obj

在VS 2012中,我有两个C#解决方案

以下显式转换适用于两种解决方案:

Excel.Range rng = (Excel.Range)Date.DataRange.Cells[1];
以下隐式转换在一个解决方案中有效,但在另一个解决方案中生成错误:

Excel.Range rng = Date.DataRange.Cells[1];
隐式转换在其中一个项目中有效而在另一个项目中无效的原因可能是什么


编辑:我得到的错误消息是
“object”不包含“Group”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“Group”(是否缺少using指令或程序集引用?)

.NET 4添加了
动态
和将COM互操作类型嵌入程序集中的功能,因此客户端不需要安装或分发非常大的PIA

这两个特性也能很好地交互,我认为这就是您的项目的区别所在。如果为程序集启用“嵌入互操作类型”,则编译器将COM
变量
类型映射到
动态
,而不是
对象
。这允许您使用动态类型隐式转换返回值,就像您在第二个示例中所做的一样


要启用“嵌入互操作类型”,只需在相关项目的
Microsoft.Office.Interop.Excel
引用的属性中将值更改为
True

查看项目属性的“生成”选项卡,并查看“警告级别”和“将警告视为错误”的级别选项设置为。如果我们明确知道您遇到的异常“生成错误”并没有给我们提供太多的信息,则可能会有所帮助。考虑到模糊的问题,有太多可能的答案。请提供其他详细信息,包括从编译器获得的任何警告或错误消息的确切文本。该错误消息用于尝试访问所示代码中从未访问过的成员,这意味着错误是由不同的代码段引起的。这就是解决方案。但我不太明白true或false的作用,以及为什么将其设置为true或false会更好。如果您手头有一个链接,它以一个新手程序员可能理解的方式谈论这个问题,请共享一个链接。不管怎样,谢谢你把这件事弄清楚!的答案有更多的信息。