Как понять контекст выполнения моей dll во время выполнения: WinForms, WinService или ASP.NET? - PullRequest
1 голос
/ 27 октября 2011

Моя сборка (сервис) была разработана для использования в контексте WinForms. Так что если где-то возникнут проблемы, моя dll покажет форму ошибки с соответствующим сообщением.

Но теперь я собираюсь использовать это. Код очень старый и грязный, поэтому я не хочу использовать шаблонные подходы и т. Д. В любом случае, мне нужно на 100% работать, чтобы определить, какой у меня контекст.

  1. Я в WinForm
  2. Я в WinService
  3. Я в сети

1 Ответ

4 голосов
/ 27 октября 2011

Если я правильно понимаю, вы находитесь на пути создания кошмара для обслуживания.

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

ИМХО, вы либо создаете событие OnError, для которого вызываете соответствующий делегат, назначенный для него потребителями вашей сборки, или, по крайней мере, вы делаете что-то подобное тому, что делает System.Console.Out; то есть вы создаете свойство типа TextWriter, которое по умолчанию используется для регистрации всех ошибок, но разрешаете потребителям вашей сборки иметь установщик для этого свойства, чтобы они могли перенаправлять журнал в свой собственный TextWriter и обрабатывать сообщения как необходимо.

Имеет ли это смысл?

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