Est-il un moyen de faire référence à une certaine classe / Interface / ... en l'enfermant avec son espace de noms plutôt que d'une directive à l'aide « à l'aide namespace_name »?

StackOverflow https://stackoverflow.com/questions/4712712

Question

Y at-il un moyen de faire référence à une certaine classe / Interface / ... en l'enfermant avec son espace de noms plutôt que d'une directive à l'aide « à l'aide namespace_name »?!

Comme, je travaille sur un site Web qui utilise le connecteur SAP .NET. Je l'ai déjà ajouté une référence pour le connecteur ddl, et en référence à son espace de noms « en utilisant namespace_name », ou espace de noms de classe ensemble à un autre plutôt que de l'espace de noms connecteur,

Je suis erreur concernant les classes de connexion avec ce message d'erreur « Impossible de trouver le type ou espace de noms, vous manque une directive à l'aide ou une référence d'assemblage? ».

Mais en changeant le nom d'espace de noms à l'espace de noms de connecteur, tout va bien!

// Set namespace to be IDestinationConfiguration interface namespace.
// Using this, everything is going well.
namespace SAP.Middleware.Connector
{
    public class ConnectorConfiguration : IDestinationConfiguration
    {
    }
}

// Using that way; it's not working, and got an error regarding IDestinationConfiguration even it belongs to refernced namespace.
using SAP.Middleware.Connector;

public class ConnectorConfiguration : IDestinationConfiguration
{
}

Ainsi, les types de connecteurs m'a forcé à namespace ensemble de la classe à leur espace de noms!

Est-ce possible? Si oui, comment?

Était-ce utile?

La solution

Est-ce que vous êtes après?

public class ConnectorConfiguration: SAP.Middleware.Connection.IDestinationConfiguration
{

}

Vous pouvez écrire tout votre code sans usings si vous le souhaitez, il vous suffit d'utiliser le nom d'espace de noms complet pour chaque classe / interface où l'utilisation de n'est pas utilisé.

Si vous essayez ceci:

using SAPTEST = SAP.Middleware.Connection;
namespace TestNamespace 
{
   public class ConnectorConfiguration: SAPTEST.IDestinationConfiguration
   {
   }
}

Si cela fonctionne, mais il ne fonctionne pas si vous supprimez SAPTEST, alors IDestinationConfiguration doit être déclarée dans un autre espace de noms aussi.

Autres conseils

je suis tombé sur ce trop et ne pouvait pas comprendre jusqu'à ce que j'ai finalement trouvé la réponse sur un poste à http://forums.sdn.sap.com/thread.jspa?threadID=1876430 , la dernière ligne qui a dit:

"Aussi, assurez-vous que votre cadre cible est" .NET v4.0" NOT ".NET v4.0 Client" -. De cette façon vous obtenez l'espace de noms System.Web qui est nécessaire "

Mon projet visait 4.0 cadre cible client. Une fois que je l'ai changé juste .NET Freamework 4.0, toutes les références a fonctionné comme prévu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top