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