mscrack
@mscrack

Как вызвать класс из другого проекта C#?

Всем привет!
Есть у меня проект (Test) я создал внутри одного решения еще несколько проектов (TestA, TestB)
TestA, TestB это модули WPF приложения с интерфейсом (UserControl) и viewmodel к ним.
Я хочу в главном приложении Test вызвать VM из модуля TestA и подгрузить usercontrol в Test, но
когда в методе вызова я инициализирую viewmodel из модуля TestA (CurrentVM = new TestAVM())
я получаю ошибку.
TestAVM недоступен из за его уровня защиты.
Если открыть класс TestAVM и добавить модификатор public ошибка пропадает, но тогда внутри модуля начинаются такие проблемы в итоге приходится почти все классы внутри модуля делать public.
Как правильно это реализовать? Я знаю про то что можно использовать prism и тд, но я хочу попробовать разобраться сам.

Структура проекта такая
--Test
----Models
----View
----ViewModels
--TestA
----Models
----View
----ViewModels
--TestB
----Models
----View
----ViewModels
  • Вопрос задан
  • 815 просмотров
Пригласить эксперта
Ответы на вопрос 1
TestAVM недоступен из за его уровня защиты.

Объяви его как public. Скорее всего он объявлен как internal
, но тогда внутри модуля начинаются такие проблемы в итоге приходится почти все классы внутри модуля делать public.

Как альтернативу - можно сделать InternalsVisibleTo
https://docs.microsoft.com/en-us/dotnet/api/system...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы