Можно ли обмениваться объектами между приложениями без сериализации? - PullRequest
2 голосов
/ 01 декабря 2010

Можно ли обмениваться объектами между приложениями C # без сериализации?

Мне нужны три приложения для совместного использования экземпляра одного и того же объекта, но сам объект не поддерживает сериализацию.

Сфера применения: я разрабатываю некоторые приложения для создания некоторой совместимости между репозиториями SVN и TFS.Но я не хочу подключаться к серверу tfs в трех приложениях (бесполезно отнимает много времени), поскольку одно из них - просто набор небольших утилит, и я не хочу, чтобы у него была медленная загрузка.

Так что я думал об использовании RemotingServices.Marshal, регистрации объекта подключения временно в канале tcp и вызове объекта всякий раз, когда он мне нужен в других приложениях.

Но вот в чем дело.Многие объекты в TeamFoundation.Client не сериализуемы, поэтому я получаю сообщение об ошибке при попытке извлечь объект.

Как я могу решить эту проблему?

1 Ответ

2 голосов
/ 01 декабря 2010

Альтернативой direct для сериализации является удаленное взаимодействие, но также требует изменения типов, поэтому работать не будет.

Вместо того, чтобы пытатьсяСериализуя объекты TFS, я бы написал объектную модель, которая напоминает объекты TFS (или лучше: запросы и т. д., которые вы хотите выполнить), и отправил , что .Затем восстановите по мере необходимости.По сути, это неглубокий слой DTO поверх реальных объектов.

Очевидно, что вам потребуется реконструировать модель TFS по мере необходимости (на основе состояния DTO), но это жизнь.

...