Класс LogWriter явно не сериализуем.Не очевидно, какую сериализацию вы делаете из кода.На самом деле, это не совсем очевидно из кода, который вы сериализуете, поэтому я предполагаю здесь.
В любом случае, я не уверен, какой сериализатор вы используете, но как бы то ни было, LogWriter НЕ БУДЕТпройти через это чисто.Сериализаторы .NET обычно не перезапускают конструкторы для типов, поэтому для полей, которые не десериализованы чисто, вы, вероятно, получите нулевое значение, как и вы.
Обойти это просто - не надовозьмите LogWriter, пока он вам действительно не понадобится.Захватите его в блоке catch вместо сохранения в конструкторе.В этом случае, вероятно, будет проще использовать более старые статические фасады вместо этого и просто вызвать Logger.Write () вместо того, чтобы проходить через конкретный экземпляр LogWriter.
-Chris