我在Visual Studio 2008中有一个C ++ / CLI应用程序,其命名空间遵循CompanyName.TechnologyName[.Feature][.Design]
的.NET准则。问题是似乎没有办法在项目的Root Namespace属性中设置多级命名空间。我尝试了CompanyName.TechnologyName
和CompanyName::TechnologyName
。
似乎我不能在不是根命名空间的命名空间内部有一个Form控件,因为这会导致找不到它所使用的资源,因此对我来说似乎不可能遵循他们的指南并与我的C#应用程序保持一致
有没有办法将此属性设置为使用多级命名空间,还是我被迫使用只是一级的根命名空间?或者有一个我忽略的解决方案吗?
编辑:
Visual Studio 2010中添加了功能以允许多级根命名空间。使用CompanyName.TechnologyName
格式NOT CompanyName::TechnologyName
。虽然后者适用于/ creation / forms,但如果表单需要资源,那么在编译时,Visual Studio会尝试保存到CompanyName::TechnologyName.resources
,这会引发错误。
答案 0 :(得分:0)
不确定我是否看到了资源问题。没有“根名称空间”的概念。您必须遵循命名空间声明的C ++规则,您必须一次嵌套一个。例如:
namespace Contoso {
namespace Accounting {
namespace PayRoll {
namespace Employees {
// class declarations go here
}}}} // yeah, that sux
在.cpp文件中:
using namespace Contoso::Accounting::PayRoll::Employees;
在我可以找到这样的声明时添加资源没有问题。但是不要添加资源,然后更改命名空间名称。 C ++ IDE没有任何重构支持。 C ++ / CLI中的Windows窗体开发不是很受欢迎,这可能是一个原因。