Интересно, сможет ли кто-нибудь мне помочь - я не особо задумался, но понимаю основные принципы.
Что я пытаюсь сделать:
Я нахожусь в процессе разработки класса, который собирает много информации о локальной системе, сети и т. Д. ... для использования в автоматических отчетах об ошибках. Вместо того, чтобы менять свой тестовый комплект каждый раз, когда я добавляю новое свойство, я (в идеале) хотел бы иметь возможность сериализовать лот в виде строки XML и просто отобразить его в текстовом поле.
К сожалению, Framework не будет использовать сериализатор XML по умолчанию для свойств только для чтения (которые почти все мои), поскольку они не будут десериализованы должным образом
[ Не уверен, что я согласен с предположением, что все сериализованное должно быть десериализуемым - MS говорит, что это особенность «по замыслу», которую, я полагаю, я могу понять - Возможно, это тег, указывающий, что оно должно быть сериализовано в любом случае было бы выгодно? ]
Первоначальный подход состоял в том, чтобы сделать свойства доступными для установки и установки (за исключением исключения броска в установщике), но объем работ по приведению в порядок этого впоследствии кажется немного чрезмерным, и я хотел бы, чтобы свойства были доступны только для чтения в окончательной версии .
В чем мне нужна помощь:
Мой текущий план - использовать рефлексию для рекурсивной итерации каждого (открытого) свойства моего высшего класса сбора. Проблема в том, что образцы, которые я видел, не обрабатывают вещи рекурсивно. Кроме того, я хочу проверять свойства объекта только в том случае, если он находится в одной из моих сборок - в противном случае просто вызовите .ToString для него.
Если у меня нет проверки, ограниченной моей сборкой, я предполагаю, что получу (скажем) строку, которая затем содержит длину, которая в свою очередь будет иметь метод .Tostring ...
Для целей этого проекта я могу почти гарантировать отсутствие циклических ссылок в моем коде, и это будет использоваться только как инструмент разработки, так что я не слишком заинтересован о том, что это время от времени выходит из-под контроля.
Буду признателен за некоторые примеры / советы.
Заранее большое спасибо.