Объект в ProjectReference недоступен при использовании ‘Import’

#c# #namespaces

#c# #пространства имен

Вопрос:

В простом проекте я хочу ссылаться на объекты из webreference, добавленные в другую библиотеку c #.

Webreference вызывается QServices default namespace как указано ниже введите описание изображения здесь

Похоже, работает следующий код:

 Taskworkflow.SI.QServices.Record[] querysResult = new Taskworkflow.SI.QServices.Record[0];
  

тем не менее, когда я импортирую Taskworkflow.SI — namespace, я продолжаю получать ошибки:

 using TaskWorkflow.SI;
....

QServices.Record[] querysResult = new QServices.Record[0];
  

Это приводит к ошибке:

 The type or namespace name 'QServices' could not be found (are you missing a using directive or an assembly reference?)
  

Может ли кто-нибудь прояснить это для меня?
Спасибо за ваше время.

Примечание: QServices существует только внутри TaskWorkflow.SI . Они не встречаются в других проектах и не имеют никаких классов / пространств имен / объектов, которые имеют общее имя.

Комментарии:

1. Похоже TaskWorkflow.SI.QServices , это пространство имен, а не имя типа.

Ответ №1:

Я сильно подозреваю, что по какой-то причине вы получаете пространство имен QServices , объявленное в TaskWorkflow.SI пространстве имен. Итак, на самом деле вы хотите:

 using TaskWorkflow.SI.QServices;
....

Record[] querysResult = new Record[0];
  

Или вы могли бы явно присвоить ему псевдоним:

 using QServices = TaskWorkflow.SI.QServices;
....

QServices.Record[] querysResult = new QServices.Record[0];
  

Комментарии:

1. Ой, здорово! Я не знал, что есть возможность использовать псевдонимы в пространствах имен. Спасибо за это новое понимание! Это действительно очень поможет мне в будущем.