Я получаю исключение ConfigurationErrorsException "Не удалось найти конструктор для класса CustomListener" - PullRequest
5 голосов
/ 22 декабря 2011

Это относится к пользовательскому a Systems.Diagnostics.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 Ответ

13 голосов
/ 22 декабря 2011

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

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

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

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

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

...