【发布时间】:2012-02-09 19:23:01
【问题描述】:
我正在构建一个日志 DLL,它将简化 EntLib 5 日志应用程序块。我正在使用ConfigurationSourceBuilder 为我的应用程序配置日志记录。我目前有这个:
var configBuilder = new ConfigurationSourceBuilder();
configBuilder.ConfigureLogging().WithOptions
.DoNotRevertImpersonation()
.LogToCategoryNamed("EventLog")
.WithOptions.SetAsDefaultCategory()
.SendTo.EventLog("Event Log Listener")
.FormatWithSharedFormatter("Text Formatter")
.ToLog("Application")
.LogToCategoryNamed("Email")
.SendTo.Email("Email Trace Listener")
.To(ToEmail)
.From(fromEmail)
.WithSubjectStart("Error:")
.UsingSmtpServer(SmtpServer)
.UsingSmtpServerPort(SmtpServerPort)
.Unauthenticated()
.FormatWithSharedFormatter("Text Formatter")
.LogToCategoryNamed("LogFile")
.SendTo.FlatFile("Flat File Trace Listener")
.ToFile(logFileName)
.WithHeader("------------------------------")
.WithFooter("------------------------------")
.FormatWithSharedFormatter("Text Formatter");
var configSource = new DictionaryConfigurationSource();
configBuilder.UpdateConfigurationWithReplace(configSource);
EnterpriseLibraryContainer.Current =
EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
程序将构建,我将在主应用程序中引用它。当它开始设置配置时,会出现以下错误:
InvalidOperationException - The current type,
Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.ILogFormatter,
is an interface and cannot be constructed. Are you missing a type mapping?
以防万一,主应用程序使用 Unity 作为 IoC。我需要用 Unity 解析 DLL 吗?
【问题讨论】:
标签: c# asp.net logging unity-container enterprise-library