1

У меня есть вопрос о частичных классах в C# enter image description hereО C# частичного класс достижимости

В этой картине, у меня есть модель предметной области. Я добавил ссылку (DomainModelLib) на клиентское приложение и повторное приложение.

Приложение репозитория использует классы этой модели домена как «DbSet» и получает данные из базы данных. Реализации создаются в частичных классах моделей, как вы можете видеть.

Я ссылаюсь на приложение «Модель для клиента». Я хочу, чтобы первый частичный (первый красный кадр) класса Product мог получить доступ в клиентском приложении, но вторая часть (нижняя красная рамка) класса не может получить доступ.

Но две детали должны быть доступны в репозитории. Это возможно?

(отображение XML NHibernate является сохранение отношений с пользователями, я Вана держать Somethings от пользователей этот путь в Entity Framework)

ответ

0

Доступность никоим образом не определен, с помощью которого исходный файл способствует частичному класса.

Единственный способ, которым я могу видеть, делать это именно так, как указано, чтобы сделать член, объявленными в нижней красной рамке internal и использовать [InternalsVisibleTo] разрешить EFRepository доступ проекта к внутренним членам в DomainModelLib.

Возможно, вы захотите рассмотреть альтернативы, хотя ... трудно предложить хорошие альтернативы, не зная точно, чего вы пытаетесь достичь, но предоставление двух разных «внешних» библиотек различной доступности принципиально сложно.

+0

Я хочу разделить объекты на две части, так как клиенты могут получить доступ, а репозиторий может получить доступ. Например, пользователям не нужно видеть SizeId в продуктах. – bayramucuncu

+0

NHibernate XML-сопоставление поддерживает отношения с пользователями, поэтому я оставляю что-то от пользователей таким образом в Entity Framework – bayramucuncu

+0

Похоже, вы могли бы сделать это с двумя разными классами здесь ... –

0

Возможно создание новой библиотеки (скажем, X). Переместите нижнюю красную рамку в это. Ссылка X из домена и репо.

+0

Если я создам новую библиотеку, пространства имен будут разными , Итак, могут ли частичные разговоры друг с другом в Repo? – bayramucuncu

+0

Не совсем, вы могли бы иметь те же пространства имен для разных сборок. – aquaraga

Смежные вопросы