Загрузка атрибутов прослушивателя трассировки

Итак, у меня есть собственный прослушиватель трассировки, который начал свою жизнь как:

http://www.codeproject.com/Articles/30956/A-Rolling-XmlWriterTraceListener

Я модифицировал это, чтобы оно больше походило на Log4Net RollingFileAppender (, см. :http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html)

. Когда я запускаю код, я обнаруживаю, что он не устанавливает значения свойств/полей из пользовательских атрибутов в файле конфигурации.

Анализ объекта во время выполнения показывает, что свойство Attributes (this.Attributes )ничего не содержит.

Любые идеи, как я могу это исправить?

Я должен вручную заполнить их или что-то в этом роде?

Хорошо, вот пример кода:

[HostProtection(Synchronization = true)]
public class RollingXmlWriterTraceListener : XmlWriterTraceListener
{
    public RollingXmlWriterTraceListener(string filename)
        : base(filename)
    {
        _basicTraceFileName = filename;
        LoadAttributes();
    }

Затем в методе LoadAttributes я делаю...

if (Attributes.ContainsKey("maxTraceFileCount"))
{
   string attributeValue = Attributes["maxTraceFileCount"];

Проблема в том, что «Атрибуты» никогда ничего не содержат. Этот класс создан из кода фреймворка с использованием информации о конфигурации, которая содержит атрибуты...

 
    
 

Редактировать 2:

Класс XmlWriterTraceListener является частью.Net, поэтому он стал моим базовым классом в свойстве Inherit the Attributes.

В конфигурации я должен иметь возможность указать любой атрибут, а затем в коде сделать что-то вроде...

var attValue = Attributes["something"];

... но по какой-то причине возвращается значение null (атрибута нет в коллекции ).

5
задан War 8 October 2012 в 10:35
поделиться