命名空间怪事

问题描述

今天碰到一件怪事,无论如何想不通。程序如下:OptionExplicitOnImportsSystem.IO'引入文本操作ImportsMicrosoft.Office.InteropImportsSystem.Text.RegularExpressionsPublicClassForm1DimxlAppExcelFileAsNewExcel.ApplicationDimwdAppWordFileAsNewWord.ApplicationDimpathSAsString'EXCELPATHDimpathTAsString'TXTpathDimpathWAsString'wordpathDimpathDAsString'DictonarypathDimdicAsString()()DimArr1ODimArr2Oendclass

一、要不要引用“microsoftexcel14.0objectlibrary’”呢?A如果我不勾选,会提示未定义类型“‘excel.application’”错误B如果我勾选,正常通过二、要不要引用“microsoftword14.0objectlibrary’”呢?A如果我不勾选,正常通过B如果我勾选,会提示“‘“Application”在命名空间“Microsoft.Office.Interop.Word”中不明确。“错误”三、最终的解决方案是勾选“microsoftexcel14.0objectlibrary’”,而不勾选“‘“microsoftword14.0objectlibrary’”’”,但这不符合逻辑呀。四、确定真图,

解决方案

本帖最后由 lengyeshuang 于 2016-05-24 00:54:56 编辑
解决方案二:
“未定义”明显是缺少引用,所以添加引用后就正确了,而“不明确”在两个命名空间内都存在一个同名的类,需要你指定类型,所以你去掉一个引用就相当于选择了另一个。这两者完全不同,没有任何好奇怪的
解决方案三:
引用1楼xdashewan的回复:

“未定义”明显是缺少引用,所以添加引用后就正确了,而“不明确”在两个命名空间内都存在一个同名的类,需要你指定类型,所以你去掉一个引用就相当于选择了另一个。这两者完全不同,没有任何好奇怪的

我懂了,对于word的问题就是我已经在另一个命名空间中引用过“word”类了?那接下来的问题就是:1、除了office,还会有哪个命名空间内存在"word"这个类呢?2、如果找到那个命名空间,我想把它前面的勾去掉。
解决方案四:
引用2楼lengyeshuang的回复:

那接下来的问题就是:1、除了office,还会有哪个命名空间内存在"word"这个类呢?2、如果找到那个命名空间,我想把它前面的勾去掉。

在Microsoft.Office.Interop下面已经有了,你可以双击看一下里面声明
解决方案五:
引用3楼xdashewan的回复:

Quote: 引用2楼lengyeshuang的回复:
那接下来的问题就是:1、除了office,还会有哪个命名空间内存在"word"这个类呢?2、如果找到那个命名空间,我想把它前面的勾去掉。

在Microsoft.Office.Interop下面已经有了,你可以双击看一下里面声明

更糊涂了,查看了一下,发现word,excel都有呀,那为什么还要勾选“‘excel.application’”?
解决方案六:
引用4楼lengyeshuang的回复:

Quote: 引用3楼xdashewan的回复:
Quote: 引用2楼lengyeshuang的回复:
那接下来的问题就是:1、除了office,还会有哪个命名空间内存在"word"这个类呢?2、如果找到那个命名空间,我想把它前面的勾去掉。

在Microsoft.Office.Interop下面已经有了,你可以双击看一下里面声明

更糊涂了,查看了一下,发现word,excel都有呀,那为什么还要勾选“‘excel.application’”?

那里面有Application吗?如果没有自然要添加相应的dll
解决方案七:
引用4楼lengyeshuang的回复:

更糊涂了,查看了一下,发现word,excel都有呀,那为什么还要勾选“‘excel.application’”?

所以引用的时候一般都用到word就引用Microsoft.Office.Interop.Word,用到excel就引用Microsoft.Office.Interop.Excel

时间: 2024-07-29 23:34:37

命名空间怪事的相关文章

解决PHP SimpleXML 不支持命名空间的问题

  很遗憾 PHP SimpleXML 原生不支持解析带命名空间的 XML 数据.比如有份酱紫的 xml 数据: 芒果小站 不知道如何处理,于是恶心了一把: $content = " 芒果小站 //替换字符串 $content = str_replace('xxx:', '', $content); //读取替换后的字符串 $xml = simplexml_load_string($content); 直接通过字符串替换把所有的命名空间过滤掉.瞬间搞定,哈哈!

命名空间-ASP.NET在加入字符过滤时,调试出错

问题描述 ASP.NET在加入字符过滤时,调试出错 ASP.NET在加入字符过滤时,调试出错,错误信息为""ExtensionAttribute"在命名空间"System.Runtime.CompilerServices"中不明确 ",请教原因 解决方案 你倒入的其他名字空间也存在ExtensionAttribute这个类的定义吧,导致编辑器不知道要使用那个空间下的类库,加上完整名字空间 System.Runtime.CompilerServic

XSLT命名空间输出&&内部调用

XSLT命名空间输出问题: 此属性exclude-result-prefixes可以控制命名空间的输出,比如:exclude-result-prefixes="ne xn en"[注意:命名空间前缀用空格分隔]表示在输出中不出现该命名空间的前缀列表{ne, xm, en}. XSLT中回车换行表示: <xsl:text> </xsl:text> 或 <xsl:text> </xsl:text> XSLT内部调用举例: <?xml v

php命名空间 namespace

php命名空间 namespace 官方说法是: 在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题 1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性. 其实命名空间就是为了解决引入不同的文件存在了两个相同的类的情况,其中 __NAMESPACE__ 可以获取namespace的名称. 例如,我有一个index文

在&amp;#106avascript中实现命名空间

命名空间 注:好久没写了,今天把我在公司内网写的文章拷一份,出来露露脸,刚转Web开发,所以开始学javascript! 在引入命名空间之前,一个令开发人员头疼的问题就是如何防止函数名/类名和其他人的冲突,在一个公司内部项目组之间可以通过命名预定(比如加前缀等)解决这个问题,但是把视线放到整个软件开发领域,在当今协作开发相当盛行的时代,这个问题却依然存在.在使用多个第三方框架或类库的时候,你唯一能作的就是祈祷它们的命名不要冲突,如果真正发生这种灾难的话,你唯一能作的就是放弃其中一个(注:可能是我

C# 语言规范--1.12 命名空间和程序集

程序|规范|命名空间 除了依赖于几个系统提供的类(如 System.Console),到目前为止介绍的程序都是独立存在的.但更常见的情况是:实际的应用程序由若干不同的部分组成,每个部分分别进行编译.例如,企业级应用程序可能依赖于若干不同的组件,其中包括某些内部开发的组件和某些从独立软件供应商处购买的组件. 命名空间和程序集有助于开发基于组件的系统.命名空间提供一个逻辑组织体系.命名空间既用作程序的"内部"组织体系,也用作"外部"组织体系(一种表示向其他程序公开程序元

PHP 5.3中的命名空间:你用过了么?

  命名空间是PHP 5.3中最重要的变化,对于C#和Java开发人员对这个词语非常熟悉了,他们终于可以更好地改变PHP应用程序的结构了. 为什么我们需要命名空间? 随着你的PHP代码库的增长,对之前定义的函数和类名进行修改时风险也更高了,当你试图增加第三方组件或插件时问题更严重,如果存在两个或两个以上的代码集实现了一个"Database"和"User"类会怎么样? 直到目前,唯一的解决办法是使用长的类/函数名,例如Wordpress在每个类和函数名前都使用了前缀&

Visual C#命名空间详解

visual|命名空间|详解 命名空间提供了一种组织相关类和其他类型的方式.与文件或组件不同,命名空间是一种逻辑组合,而不是物理组合.在C#文件中定义类时,可以把它包括在命名空间定义中.以后,在定义另一个类,在另一个文件中执行相关操作时,就可以在同一个命名空间中包含它,创建一个逻辑组合,告诉使用类的其他开发人员这两个类是如何相关的以及如何使用它们: namespace CustomerPhoneBookApp{ using System; public struct Subscriber { /

第十四节--命名空间 -- Classes and Objects in PHP5 [14]

object|php5|命名空间 /*+-------------------------------------------------------------------------------+| = 本文为Haohappy读<<Core PHP Programming>> | = 中Classes and Objects一章的笔记 | = 翻译为主+个人心得 | = 为避免可能发生的不必要的麻烦请勿转载,谢谢 | = 欢迎批评指正,希望和所有PHP爱好者共同进步! +---