我是新來的溫莎城堡,我試圖神交的基本知識......溫莎城堡(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();
}
眼下這個總是返回「你好」。如果我想讓它返回「再見」,我需要改變什麼而不改變類的順序?
謝謝,這個幫助最大。我可以看到,自動佈線的好處是一條路。 –