温莎城堡注册组件问题
你好 我第一次使用 Castle 项目,在控制台应用程序中向容器注册组件时遇到问题。 以下是 castle.config 文件:
<configuration>
<configSections>
<section name="castle"
type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>
<castle>
<components>
<component id="messageSender"
type="CastleTest.SecretMessageSender, CastleTest">
<parameters>SecretMessageSender
<from>[email protected]</from>
<encoder>${encoder.null}</encoder>
</parameters>
</component>
<component id="encoder.silly"
service="CastleTest.IEncoder, CastleTest"
type="CastleTest.SillyEncoder, CastleTest" />
<component id="encoder.null"
service="CastleTest.IEncoder, CastleTest"
type="CastleTest.NullEncoder, CastleTest" />
</components>
</castle>
</configuration>
以下是我尝试注册组件的主类:
namespace CastleTest
{
class testNewCastle
{
static void Main(string[] args)
{
IWindsorContainer container = new WindsorContainer();
**Tried various methods to register components here**
SecretMessageSender sender = container.Resolve<SecretMessageSender>("messageSender");
sender.SendMessage("Rahul", "Testing using Castle!");
Console.Read();
}
}
}
以下是 SecretMessageSender 类:
namespace CastleTest
{
public interface IEncoder
{
string Encode(string source);
}
public class SecretMessageSender
{
private readonly IEncoder _encoder;
private readonly string _from;
public SecretMessageSender(string from, IEncoder encoder)
{
_from = from;
_encoder = encoder;
}
public void SendMessage(string to, string body)
{
Console.WriteLine("to: {0}\r\nfrom: {1}\r\n\r\n{2}", to, _from, _encoder.Encode(body));
}
}
}
请帮助我运行此代码。
谢谢。
Hi
I've been using Castle project for the first time and facing a problem in registering a component with the container in a console application.
Following is the castle.config file:
<configuration>
<configSections>
<section name="castle"
type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>
<castle>
<components>
<component id="messageSender"
type="CastleTest.SecretMessageSender, CastleTest">
<parameters>SecretMessageSender
<from>[email protected]</from>
<encoder>${encoder.null}</encoder>
</parameters>
</component>
<component id="encoder.silly"
service="CastleTest.IEncoder, CastleTest"
type="CastleTest.SillyEncoder, CastleTest" />
<component id="encoder.null"
service="CastleTest.IEncoder, CastleTest"
type="CastleTest.NullEncoder, CastleTest" />
</components>
</castle>
</configuration>
Following is main class where I'm trying to register my component:
namespace CastleTest
{
class testNewCastle
{
static void Main(string[] args)
{
IWindsorContainer container = new WindsorContainer();
**Tried various methods to register components here**
SecretMessageSender sender = container.Resolve<SecretMessageSender>("messageSender");
sender.SendMessage("Rahul", "Testing using Castle!");
Console.Read();
}
}
}
Following is SecretMessageSender class:
namespace CastleTest
{
public interface IEncoder
{
string Encode(string source);
}
public class SecretMessageSender
{
private readonly IEncoder _encoder;
private readonly string _from;
public SecretMessageSender(string from, IEncoder encoder)
{
_from = from;
_encoder = encoder;
}
public void SendMessage(string to, string body)
{
Console.WriteLine("to: {0}\r\nfrom: {1}\r\n\r\n{2}", to, _from, _encoder.Encode(body));
}
}
}
Please help me in running this code.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更多信息请参见有关安装程序的文档。
More information in the docs about installers.