여러분 모두 좋은 기분을 빌어! 화합으로 도와주세요.대체 파일 및 섹션 확장에서 유니티, LoadConfiguration
내 app.config 파일이 포함되어
이<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>
<system.diagnostics>
<sources>
<source name="TraceTest" switchName="SourceSwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<add name="console" />
<remove name ="Default" />
</listeners>
</source>
</sources>
<switches>
<add name="SourceSwitch" value="All" />
</switches>
<sharedListeners>
<add name="console"
type="System.Diagnostics.ConsoleTraceListener"
initializeData="false"/>
</sharedListeners>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="console" />
</listeners>
</trace>
</system.diagnostics>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="ContextDownloader"/>
<namespace name="ContextDownloader.Log"/>
<namespace name="System.Diagnostics"/>
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension,
Microsoft.Practices.Unity.Interception.Configuration"/>
<container>
<extension type="Interception"/>
<register type="ILogWorker" mapTo="FileLogWorker">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="TraceBehavior"/>
</register>
<register type="TraceSource" name="interception">
<constructor>
<param name="name" type="System.String" value="TraceTest" />
</constructor>
</register>
<register type="TraceBehavior">
<constructor>
<param name="source" dependencyName="interception" />
</constructor>
</register>
</container>
</unity>
</configuration>
내가 내 코드에서의 App.config에서 구성을로드 :
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "App.config" };
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");
var container = new UnityContainer();
그래서 그것은 예외
처리되지 않은 예외가 발생합니다 : 시스템 .Configuration.ConfigurationErrorsException : unity에 대한 구성 섹션 처리기를 만드는 동안 오류가 발생했습니다. 형식 이름 또는 별칭 Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigu rationExtension, Microsoft.Practices.Unity.Interception.Configuration을 (를) 확인할 수 없습니다. 구성 파일을 확인하고이 유형 이름을 확인하십시오.
라인 var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");
. Microsoft.Practices.Unity.Interception.Configuration 어셈블리를 어떻게로드 할 수 있습니까?
응용 프로그램에 대한 자세한 내용. 나는 콘솔 어플리케이션과 라이브러리를 가지고있다. 내 콘솔 응용 프로그램에서 하나의 메서드를 호출하면 모든 논리가 라이브러리에 있습니다.
출력 라이브러리에이 Microsoft.Practices.Unity.InterceptionExtension.Configuration.dll을 복사 해 주셔서 감사합니다. system.diagnostic 섹션도로드 할 수 있습니까?
고마워요! 출력 폴더에 Microsoft.Practices.Unity.Interception.Configuration.dll을 추가하기 만하면됩니다. 그러나 하나 더, 당신은 section system.diagnostic으로 나를 도울 수 있습니까? 애플리케이션에이 섹션을 어떻게로드 할 수 있습니까? 감사! – Udgin
@ user1337137 나는 당신이 달성하고자하는 것을 100 % 확신하지 못했습니다. 'Trace.WriteLine (...을 호출하면)'ConsoleTraceListener는 모든 메시지를 수신해야합니다. 'TraceSource'로 무엇을하고 싶습니까? –
OK, 죄송합니다. 구성 파일 (App.config)에서 "system.diagnostics"설정을 사용하고 싶습니다. 내 라이브러리 (콘솔 응용 프로그램 아님)의 구성 파일입니다. 나는 그것이 불가능하다고 생각한다. 미리 감사드립니다! 귀하의 도움은 매우 유용합니다! – Udgin