У меня 2 проекта. Вложенный проект имеет 2 модели: Model1in
и Model1Out
.
namespace Test.Nested
{
public class Model1in
{
#if NATIVE
public static explicit operator Model1in(Model1Out model)
{
return model == null ? null : new Model1in();
}
#endif
}
public class Model1Out
{
#if NATIVE
public static explicit operator Model1Out(Model1in model)
{
return model == null ? null : new Model1Out();
}
#endif
}
Но в другом проекте я хочу преобразовать объект Model1in в Model1Out и обратно.
#define NATIVE
namespace Test.Native
{
....
Model1Out model = (Model1Out)Model1in;
}
Компилятор генерирует ошибка и не распознает блок преобразования модели. Просит реализовать. Оказывается, он просто не видит блок #define NATIVE
. Что не так? Я добавляю ссылку на проект Nested
, Native
, использую его и определяю константу в настройках проекта.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>DEBUG;NATIVE</DefineConstants>
</PropertyGroup>
Если я использую этот инструмент для константы в проекте Nested
- никаких проблем, но у меня есть другие проект, где этот блок не может быть использован, и я хочу скрыть implicit|explicit
строительство.