Я получаю исключение ConfigurationErrorsException " не удалось найти конструктор для класса CustomListener"


Это связано с пользовательскими системами А.Диагностика.TraceListener

<system.diagnostics>
    <sources>
        <source name="SomeTraceSourceName" 
            switchType="System.Diagnostics.SourceSwitch" 
            switchName="SomeSwitchName">
            <listeners>
                <clear />
                <add name="CustomListener"/>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add name="CustomListener"
            type="CustomListener, MyAssembly" 
            initializeData=""/>
    </sharedListeners>
    <switches>
        <add name="SomeSwitchName" value="4"  />
    </switches>
</system.diagnostics>

Этого не происходит с прослушивателем трассировки по умолчанию.

Я нашел это сообщение MSDN, но в конечном итоге оно не оказалось полезным.

1 4

1 ответ:

Нашел-это заняло много времени.

Ключом была эта часть:

<add name="CustomListener"
            type="CustomListener, MyAssembly" 
            initializeData=""/>

Когда intializationData является пустой строкой, он будет искать конструктор без аргументов. Как только я добавил значение для initializeData, фреймворк нашел конструктор.

Ошибка должна была сказать: "нет конструктора с 0 параметрами, возможно, вам нужно включить некоторые initializeData"