Проблема с расширением tracelistener для регистрации в Enterprise Library с разрешением ILogFormatter - PullRequest
0 голосов
/ 17 июня 2011

Я сижу с проблемой уже довольно давно, и я просто не могу найти то, что мне не хватает. Я написал пользовательский компонент прослушивания трассировки для Enterprise Library 5.0 для блока приложения Logging, который работает, но настроенный ILogFormatter просто не разрешается, и поэтому я всегда получаю основной текст строки, когда он обрабатывается моим компонентом. Я видел в исходном коде библиотеки предприятия, что они используют метод «Container.ResolvedIfNotNull ()». Кажется, это не работает для меня. Мне нужно, чтобы выписать настраиваемую строку для моего компонента. Вы знаете, не только сообщение, но и временную метку, имя машины, идентификатор потока и т. Д.

У кого-нибудь есть идеи как это исправить?

Заранее спасибо.

1 Ответ

0 голосов
/ 20 июня 2011

Как я уже упоминал на этом сайте: http://entlib.codeplex.com/discussions/261749

Когда вы создаете CreationExpression в классе данных TraceListener, убедитесь, что у вас есть плоское определение конструктора.Другими словами, не возвращайте:

() => new MyTraceListener(new TraceListenerConfig(..., Container.ResolvedIfNotNull<ILogFormatter>(), ...));

, просто используйте его в конструкторе MyTraceListener:

() => new MyTraceListener(..., Container.ResolvedIfNotNull<ILogFormatter>(), ...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...