내가 성 윈저에 새로운 오전과 기초를 grok 수하려고 ... 성 윈저 (IOC) 기본
내가 가지고있는 다음 코드는 ...namespace WindowsBash.Models
{
public interface IShouter
{
string Display();
}
public class Shout : IShouter
{
private IMessage _message;
public Shout(IMessage message)
{
_message = message;
}
public string Display()
{
return _message.TheMessage();
}
}
public interface IMessage
{
string TheMessage();
}
public class MessageHello : IMessage
{
public string TheMessage()
{
return "Hello";
}
}
public class MessageBye : IMessage
{
public string TheMessage()
{
return "Bye";
}
}
}
나는 다음 방법을 윈저가 무엇을하고 있는지 시험 해보기 위해 ....
private void TestIOC()
{
var container = new WindsorContainer();
container.Register(
AllTypes.FromAssemblyContaining<IShouter>()
.Where(x => x.Namespace.StartsWith("WindowsBash"))
.WithService.AllInterfaces());
var MyShouter = container.Resolve<IShouter>();
var result = MyShouter.Display();
}
지금이 항상 "Hello"를 반환합니다. "Bye"를 반환하고 싶다면 클래스 순서를 변경하지 않고 무엇을 변경해야합니까? 난 당신이 컴파일 된 클래스의 외부 구성 할 수 있도록이 XML에서 수행 보았다
감사합니다. 가장 도움이되었습니다. 나는 자동 배선의 이점이 갈 길이라는 것을 알 수있다. –