public class AliasService
{
private Dictionary<string, string> _aliases;
public Dictionary<string, string> Aliases
get { return _aliases; }
set { _aliases = value; }
}
public string Evaluate(string term)
if (_aliases == null) return term;
while (_aliases.ContainsKey(term))
term = _aliases[term];
return term;
static void Main(string[] args)
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
AliasService aliasService = container.Resolve<AliasService>();
string sentence = "a dog ate my homework";
foreach (string word in sentence.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
Console.Write("{0} ", aliasService.Evaluate(word));
Console.Read();
<configuration>
<configSections>
<section name="castle"
type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>
<castle>
<components>
<component id="aliases.service" type="IoC.Tutorials.Part3.AliasService, IoC.Tutorials.Part3">
<parameters>
<Aliases>
<dictionary>
<entry key="dog">duck</entry>
<entry key="ate">broke</entry>
<entry key="homework">code</entry>
</dictionary>
</Aliases>
</parameters>
</component>
</components>
</castle>
</configuration>