【发布时间】:2011-08-25 12:22:59
【问题描述】:
我是温莎城堡的新手,正在尝试了解基础知识...
我有以下代码...
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”,我需要在不改变类顺序的情况下改变什么?
【问题讨论】:
标签: c# castle-windsor