2010-05-20 3 views
3

J'ai une application C++/CLI dans Visual Studio 2008 dont l'espace de noms suit la directive .NET de CompanyName.TechnologyName[.Feature][.Design]. Le problème est qu'il semble y avoir aucun moyen de définir un espace de noms à plusieurs niveaux dans la propriété Root Namespace du projet. J'ai essayé les deux CompanyName.TechnologyName et CompanyName::TechnologyName. Il semble que je ne puisse pas avoir un contrôle Form dans un espace de noms qui ne soit pas l'espace de noms racine car cela ne permet pas de trouver les ressources qu'il utilise, donc il me semble impossible de suivre leur ligne directrice et d'être cohérent avec mon C# applications.Comment puis-je définir correctement la propriété Root Namespace dans une application C++/CLI?

Existe-t-il un moyen de définir cette propriété pour utiliser des espaces de noms à plusieurs niveaux ou suis-je obligé d'utiliser un espace de noms racine de niveau simple? Ou y a-t-il une solution que je néglige?

Édition:
La fonctionnalité est ajoutée dans Visual Studio 2010 pour autoriser les espaces de noms racine à plusieurs niveaux. Utilisez le format CompanyName.TechnologyName NOT CompanyName::TechnologyName. Alors que ce dernier fonctionne pour/create/forms, si vos formulaires requièrent des ressources, lors de la compilation, Visual Studio essaie d'enregistrer en CompanyName::TechnologyName.resources ce qui provoquera une erreur.

Répondre

0

Je ne suis pas sûr de voir le problème de ressources. Il n'y a pas de notion d'un "espace de noms racine". Vous devez suivre les règles C++ pour les déclarations d'espace de noms, vous devrez les imbriquer les unes après les autres. Par exemple:

namespace Contoso { 
    namespace Accounting { 
    namespace PayRoll { 
     namespace Employees { 

    // class declarations go here 

}}}} // yeah, that sux 

Et dans le fichier .cpp:

using namespace Contoso::Accounting::PayRoll::Employees; 

Il n'y a pas du mal à ajouter des ressources quand il est déclaré comme ce que je pouvais trouver. Mais n'ajoutez pas de ressource, puis modifiez le nom de l'espace de nom. L'IDE C++ n'a aucun support de refactoring. Windows Forms développement en C++/CLI n'est pas très populaire, ce serait peut-être une raison.

+1

Le redémarrage de Visual Studio et la recompilation ont corrigé le problème. Merci pour votre réponse. :) –

Questions connexes