我是新来的温莎城堡,我试图神交的基本知识......温莎城堡(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();
}
眼下这个总是返回“你好”。如果我想让它返回“再见”,我需要改变什么而不改变类的顺序?
谢谢,这个帮助最大。我可以看到,自动布线的好处是一条路。 –