У меня есть три проекта, настроенных в Visual Studio:
-A Xamarin Android-проект под названием «MyProject.Droid»
-A Общий проект под названием «MyProject.Shared»
-A модульный тестпроект под названием «UnitTestProject»
Теперь «MyProject.Shared» содержит модели, используемые в «MyProject.Droid».Примером этого является класс «Customer.cs», который просто содержит некоторые простые свойства, связанные с клиентом.«MyProject.Droid» умеет ссылаться и использовать эти классы просто отлично.Проблема возникает, когда я пытаюсь использовать эти же модели в «UnitTestProject»:
Я создаю экземпляр класса «Клиент», который работает, но выдает предупреждение о наличии конфликта с «Клиентом».класс в "MyProject.Shared" и один импортированный из "MyProject.Droid".(Обратите внимание, что класс «Customer» фактически не определен в «MyProject.Droid».) Он говорит мне, что принял решение использовать тип из «MyProject.Shared».Я не могу изменить этот результат или избежать этого предупреждения, даже если я указываю пространство имен специально в объявлении.
Теперь все еще в «UnitTestProject» и вызываю конструктор для службы в «MyProject.Droid»который принимает объект «Клиент», который я только что определил в качестве параметра, я получаю следующую ошибку:
Cannot convert from
'MyProject.Shared.Customer" [UnitTestProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]'
to
'MyProject.Shared.Customer" [MyProject.Droid, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]'
Я пришел к выводу, что эта проблема, как представляется, вызвана природой общих проектов в том, что онине генерируйте свою собственную сборку и вместо этого включаются в проекты, которые сами на них ссылаются, поэтому существует версия класса, по-видимому, происходящая из «MyProject.Droid», а другая - из «UnitTestProject».Но тогда это только приводит меня к решению удалить проект Shared и переместить все модели в «MyProject.Droid», чего я бы хотел избежать.Итак, я пришел сюда, возможно ли избежать этой ошибки в «UnitTestProject» без удаления общего проекта?