sheik SHA Ответов: 1

Как совместно использовать общий проект в разных решениях для поддержки одного и того же экземпляра


I have a class "Student", this class is used in ProjectA in solution1 and same class used in ProjectA in Solution2

I have changed something in Student classfrom solution1, that changes not reflected in solution2, still its holding the previous.

My problem is : How to share the project between 2 UI, when something changes from solution1 and that should be reflected in solution2, so how to maintain the single instance of Student class across different UI.


Что я уже пробовал:

Я использую механизм зависимостей в prism, но он работает между модулями, а не между решением и другим пользовательским интерфейсом

1 Ответов

Рейтинг:
0

OriginalGriff

Есть два способа включить проект в решение:
1) Вы можете добавить ссылку на сборку в новый проект. Это просто дает новому проекту доступ к классам в добавленном проекте.
2) Вы можете добавить существующий проект в решение. Это позволяет редактировать код добавленного проекта из любого решения.


Ни один из них не будет автоматически "обновлять" Решение 1 или решение 2, Если добавленный проект будет изменен в другом - это требует перестройки обоих проектов, чтобы использовать новую версию.
И если вы подумаете об этом, это именно то, что вы хотите, чтобы произошло.
Почему? Давайте посмотрим, что произойдет, если asn edit автоматически обновит оба. Предположим, что он не работает сразу; у него есть катастрофическая ошибка? Оба приложения терпят неудачу, несмотря на то, что одно из них не "знает" о каких-либо изменениях! Это плохо: вы не должны "ломать" существующий код!

Поэтому добавьте свой проект в оба решения, а затем постройте оба решения, когда "общий проект" будет стабильным. Таким образом, "незатронутое приложение" не терпит неудачи, потому что общий проект тем временем изменился.


sheik SHA

Спасибо вам за ваше решение, в настоящее время мы используем то же самое, что вы упомянули.

Извините, что я не объяснил свой вопрос ясно.

Что мне нужно: во время компиляции это нормально, пожалуйста, рассмотрите следующий сценарий

Оба приложения запущены
- изначально объект student содержит свойство Name и имеет значение "XXXX"
- после запуска обоих приложений решение 1 считывает свойство Name и возвращаемое значение "XXXX" также считывается из решения 2 и возвращает то же самое "XXXX".
- Затем решение 1 меняет имя на "гггг", а решение 2 снова читает имя, мое ожидание заключается в том, что имя должно быть "гггг", но его возвращение такое же "ХХХХ", которое показывает, что оба приложения используют один и тот же код во время компиляции, но поддерживают 2 разных экземпляра во время выполнения.

OriginalGriff

Правильно... этого не произойдет. Эти два приложения имеют полностью отдельную память, и то, что происходит с одним объектом в AppA, не влияет, не может и не повлияет на объект в AppB, даже если они совместно используют классы.

То, что вам нужно, - это "промежуточное хранилище", которое содержит информацию, используемую как AppA, так и AppB: я бы предложил вам посмотреть на БД, вероятно, основанную на сервере, поскольку вам фактически нужно несколько пользователей, обращающихся к ней одновременно.
Другое решение состоит в том, чтобы два приложения взаимодействовали между собой, но это сложно и "блокирует" два приложения вместе - это возможно, но если вы позже добавите AppC, он начнет экспоненциально усложняться. БД-это лучшее решение здесь, на самом деле!

sheik SHA

Спасибо за ваш ответ и усилия :)

OriginalGriff

Всегда пожалуйста!