Есть ли способ ссылаться на определенный класс / интерфейс / ..., заключая его в свое пространство имен, а не используя директиву using «namespace_name»? - PullRequest
1 голос
/ 17 января 2011

Есть ли способ сослаться на определенный класс / интерфейс / ..., заключив его в свое пространство имен, а не в директиву using "using namespace_name"?!

Как, я работаю над сайтом, который использует коннектор SAP .NET. Я уже добавил ссылку на соединитель ddl и, ссылаясь на его пространство имен "using namespace_name", или установил пространство имен класса на другое, а не на пространство имен соединителя,

Я получил ошибку относительно классов соединителей с этим сообщением об ошибке «Не удалось найти тип или пространство имен, вам не хватает директивы using или ссылки на сборку?».

Но при изменении имени пространства имен на пространство имен коннектора все идет хорошо?!

// 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
{
}

Итак, типы соединителей заставили меня установить пространство имен класса на их пространство имен!

Возможно ли это? Если да, то как?

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Я тоже столкнулся с этим и не мог понять, пока не нашел ответ на пост в http://forums.sdn.sap.com/thread.jspa?threadID=1876430, последней строке, в которой говорилось:

"Кроме того, убедитесь, что ваша цельframework это ".NET v4.0", а не ".NET v4.0 Client" - таким образом вы получаете требуемое пространство имен System.Web. "

Мой проект был ориентирован на целевую инфраструктуру 4.0 клиента.Как только я изменил его на .NET Freamework 4.0, все ссылки работали, как и ожидалось.

0 голосов
/ 17 января 2011

Это то, что вы ищете?

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

}

Вы можете написать весь свой код без использования, если хотите, вам просто нужно использовать полное имя пространства имен для каждого класса / интерфейса, где использование не используется.

Если вы попробуете это:

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

Если это работает, но не работает, если вы удалите SAPTEST, тогда IDestinationConfiguration необходимо объявить и в другом пространстве имен.

...