.NET 4.5命名空间“Standard”

4
在.NET 4.5的PresentationFramework中有一个名为Standard的命名空间。更多信息请参见什么是命名空间“Standard”? 问题是,在我的C++/CLI项目中,我正在使用一个未管理的库,该库还定义了一个名为Standard的类。因此,我会遇到以下编译器错误:
error C2869: 'Standard' : has already been defined to be a namespace

我无法删除对PresentationFramework的引用,也无法停止使用该库。 我能做些什么吗? 像取消导入命名空间这样的操作?

附言:我正在使用VisualStudio 2012。 我认为升级到2013可能会有所帮助,但这需要整个团队一起进行。


你有没有使用OCCT呢?你是如何解决这个问题的? - wonko realtime
我们最终确保在同一项目中不同时使用PresentationFramework和OCCT。 - Timur Nuriyasov
啊,我明白了。我之前也成功地这样做了一段时间,但现在已经到了一个负担太重的地步。因此,对于任何遇到相同问题的人来说,在命名空间中包装这个标准类并不需要太长时间,也不会有太多维护负担 - 请参见https://dev.opencascade.org/index.php?q=node/1210。 - wonko realtime
1个回答

2
那个命名空间是在.NET 4.5中由PresentationFramework添加的,我认为更改到Visual Studio 2013并不能帮助您。该命名空间中的所有内容都被定义为内部,并且它主要由用于PresentationFramework调用的Windows SDK函数使用的枚举和结构体组成。
不幸的是,我不知道如何解决您的问题。也许您可以说服供应第三方库的人更改他们的命名空间。微软现在正在使用它的事实将是他们这样做的一个很好的理由。那些创建简单、通用名称(如“Standard”)命名空间的人需要检查一下他们的头脑。

我不认为“Standard”命名空间是问题所在。但是,一个叫做“Standard”的类会更加严重。 - julealgon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接