처음으로 단일 응용 프로그램 블록이라는 DI 프레임 워크를 사용하고 있습니다. 오류가 발생했습니다. 오류는 다음과 같습니다 -Unity 응용 프로그램 블록 종속성 주입 사용 관련 문제
유형 이름 또는 별명 ILogger입니다 확인할 수 없습니다. 구성 파일을 확인하고이 유형 이름을 확인하십시오.
것은 내가 내 주요 PROJ 속으로 측면에서 의존성을 주입하려고했다. 내가 어디서나 종속성에 의해 데이터를 저장하고 싶다고 가정 해 봅시다. 내가 유니티 통합에 대한 내 응용 프로그램을 개발하는 방법을 내가 당신을 말하고 파일에 데이터 또는 콘솔 등 데이터베이스 여기
을 저장한다고 가정 말.
먼저 "Ilogger"라는 클래스 라이브러리 프로젝트를 만듭니다.이 프로젝트에는 하나의 인터페이스 만 있습니다. 이 인터페이스
namespace Ilogger
{
public interface ILog
{
void Write(string msg);
}
}
의 전체 코드는 둘째로 나는 내가 단지 ConsoleWriter의 PROJ로하는 ILogger 프로젝트의 참조를 추가 interface.so하는 ILogger을 상속 하나의 클래스가 "ConsoleWriter"라는 클래스 라이브러리 프로젝트를 만듭니다. 이 ConsoleWriter
namespace ConsoleWriter
{
public class ConsoleWriter : Ilogger.ILog
{
#region ILog Members
public void Write(string msg)
{
Console.WriteLine(msg);
Console.ReadLine();
}
#endregion
}
}
3 단계의 전체 코드는 내가 "FileWriter "라는 클래스 라이브러리 프로젝트를 만들 난 그냥 FileWriter의 PROJ로하는 ILogger 프로젝트의 참조를 추가 interface.so가하는 ILogger을 상속 하나 개의 클래스가 있습니다.
namespace FileWriter
{
public class FileWriter : Ilogger.ILog
{
#region IWriter Members
public void Write(string msg)
{
using (StreamWriter streamWriter = new StreamWriter("c:\\TestUnity.txt", true))
{
streamWriter.WriteLine(msg);
}
}
#endregion
}
}
다음에 내가 런타임에 실행 종속를 주입 곳에서 내 승리의 애플 리케이션을 만드는이 FileWriter의 전체 코드. 이 프로젝트에서 내가 단결 블록의 일부 DLL 참조를 추가하고 그 있습니다.
Microsoft.Practices.Unity
Microsoft.Practices.Unity.Configuration
system.configuration
내가 하나 개의 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>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias type="ILogger.ILog, ILogger" alias="ILogger" />
<namespace name="ILogger.ILog"/>
<container>
<register mapTo="FileWriter.FileWriter, FileWriter" name="MyFileWriter" type="ILogger"/>
<register mapTo="ConsoleWriter.ConsoleWriter, ConsoleWriter" name="MyConsoleWriter" type="ILogger"/>
</container>
</unity>
</configuration>
같은 항목이 여기에 오류가
문자열 strCountryCode = "USA"슬로우되는 곳에서의 주요 코드가있다;
IDictionary<string, string> loggers = new Dictionary<string, string>();
loggers.Add("USA", "MyFileWriter");
loggers.Add("GBR", "MyConsoleWriter");
IUnityContainer container = new UnityContainer();
UnityConfigurationSection section = (UnityConfigurationSection)System.Configuration.ConfigurationManager.GetSection("unity");
//container.LoadConfiguration();
section.Containers.Default.Configure(container);
Ilogger.ILog logger = container.Resolve<Ilogger.ILog>(loggers[strCountryCode]);
logger.Write("Hello World");
이 줄을주는 내가 그래서 난 내가 만든 어떤 실수 잡을 수없는거야 DI 프레임 워크의 단결을 처음 사용하고
section.Containers.Default.Configure(container);
오류입니다. 아무도 나를 도와 오류를 해결하고 그것을 해결하는 방법을 말해주십시오.
감사합니다.
prob.canu를 찾아서 샘플 코드로 안내해주세요. 어떻게 설정 파일없이 화일로 작업 할 수 있습니까? 덕분에 – Thomas
무엇이 문제였습니까? 통합 구성을 위해 http://msdn.microsoft.com/en-us/library/ff648211.aspx를 참조하십시오 ... – daryal
구성 파일에 문제가있었습니다. – Thomas