Re[5]: Странная проблема с бинарной сериализацией
От: ZeBeSt Россия  
Дата: 03.04.08 09:43
Оценка:
Здравствуйте, hard.disk, Вы писали:

HD>Здравствуйте, ZeBeSt, Вы писали:


ZBS>>Здравствуйте, hard.disk, Вы писали:


HD>>>А если перед десериализацией вставить строку Assembly.Load("полный путь к Cds.Service.Core")?


ZBS>>Дело в том, что вышеприведенный код сам содержится в этой сборке

HD>Это я понял, а ты попробуй.
HD>На форумах МСДНа был пост со схожей проблемой.

Проблема решена !!!.

Даю описание.
Разрабатываемый модуль для отладки запускается внешним приложением.
Причем приложение и модуль находятся в разных папках. Не буду вдаваться в объяснения, но надо именно так.
Вследствие этого видимо фреймворк не может самостоятельно разрулить ситуацию и ему приходится помогать.
Волшебная таблетка заключается в следующем:

в инициализации добавляем строки:

  AppDomain currentDomain = AppDomain.CurrentDomain;
  currentDomain.AssemblyResolve +=new ResolveEventHandler(CurrentDomain_AssemblyResolve);


И такой обработчик:

  private System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
  {
    System.Reflection.Assembly[] asms = AppDomain.CurrentDomain.GetAssemblies();
    for (int i = 0; i < asms.Length; ++i)
    {
      if (asms[i].FullName == args.Name)
      return asms[i];
    }
    return null;
  }


Все работает!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.