Castle Windsor:如何从代码中指定构造函数参数?

2023-11-22

假设我有以下课程

MyComponent : IMyComponent {
  public MyComponent(int start_at) {...}
}

我可以通过 xml 向温莎城堡注册它的实例,如下所示

<component id="sample"  service="NS.IMyComponent, WindsorSample" type="NS.MyComponent, WindsorSample">  
  <parameters>  
    <start_at>1</start_at >  
  </parameters>  
</component>  

我该如何做同样的事情,但是用代码呢? (注意,构造函数参数)


编辑:使用以下代码与流畅的界面的答案:)

namespace WindsorSample
{
    using Castle.MicroKernel.Registration;
    using Castle.Windsor;
    using NUnit.Framework;
    using NUnit.Framework.SyntaxHelpers;

    public class MyComponent : IMyComponent
    {
        public MyComponent(int start_at)
        {
            this.Value = start_at;
        }

        public int Value { get; private set; }
    }

    public interface IMyComponent
    {
        int Value { get; }
    }

    [TestFixture]
    public class ConcreteImplFixture
    {
        [Test]
        void ResolvingConcreteImplShouldInitialiseValue()
        {
            IWindsorContainer container = new WindsorContainer();

            container.Register(
                Component.For<IMyComponent>()
                .ImplementedBy<MyComponent>()
                .Parameters(Parameter.ForKey("start_at").Eq("1")));

            Assert.That(container.Resolve<IMyComponent>().Value, Is.EqualTo(1));
        }

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Castle Windsor:如何从代码中指定构造函数参数? 的相关文章

  • 在 C# 中将字符串转换为等效的字节十六进制

    我有一个传入的字符串68016101061B4A60193390662046804020422044204000420040402060226024676DB16我想转换成0x68 0x01 0x61 0x01 0x06 0x1B 0x4A
  • C# - 使用 Entity Framework Core 3 HasConversion 将字段转换为 .Net Core 3.1 中的 JSON

    我试图在项目中的所有模型之间动态完成转换 数据库上下文 cs protected override void OnModelCreating ModelBuilder modelBuilder var entityTypes modelBu
  • 跟踪 C#/.NET 任务流

    我正在尝试找到一种方法来跟踪异步任务执行流程 以便轻松理解任务 启动它的原始流程是什么 我主要需要它来记录 调试和保留特定执行流的堆栈跟踪 例如 如果我的服务器有来自多个 IP 的许多客户端 并且服务器需要为每个客户端执行一个涉及许多异步操
  • Automapper 是否应该与私有设置器 OOB 一起使用?

    我有一个嵌套子类 其中包含带有私有设置器的公共属性 在父类中 我可以使用 Automapper 映射到子类 并且正在设置私有设置器的值 我读到的所有内容都表明 Automapper 不支持这一点 并且需要子类中的自定义构造函数来填充私有设置
  • .Net 中包含希伯来字母和数字的 Unicode 字符串

    尝试创建包含希伯来字母和数字的字符串时出现奇怪的行为 数字将始终显示在字母的左侧 例如 string A u05E9 A Hebrew letter string B 23 string AB A B textBlock1 Text AB
  • WPF - 防止用户操作在应用程序繁忙时排队

    当应用程序繁忙时 意味着 UI 线程被阻止执行某些操作 您建议采用什么方法来忽略用户请求 例如鼠标单击 具体的例子可能是网格控件的排序 如果我们说排序很慢 那么在操作运行时 我想忽略额外的用户点击 这些点击会堆积并多次执行操作 除了诉诸禁用
  • 使用存储库时,ASP.NET MVC 中业务逻辑的最佳位置是什么?

    在 ASP NET MVC 项目中实现数据库存储库时 将业务逻辑放入其中是否正确 或者将逻辑放入控制器类中可能更好 或者使用额外的服务和帮助程序类来操作数据 最终 除了其自己的层 作为 模型 层的一部分 之外 您的业务逻辑没有一个完美的位置
  • 本机代码、机器代码和汇编代码有什么区别?

    我对 NET 语言上下文中的机器代码和本机代码感到困惑 它们之间有什么区别 它们是一样的吗 这些术语确实有点令人困惑 因为它们有时使用不一致 机器代码 这是定义最明确的一种 它是使用字节码指令的代码 您的处理器 执行实际工作的物理金属部件
  • 无法创建发布配置文件 - Azure

    我创建了一个 ASP Net Web 应用程序 MVC 以将其发布到 Azure VM 上 但是 我收到以下错误 在给定的文件夹结构中 没有名为的文件PublishProfiles AppService pubxml创建的 有人可以帮我解决
  • SQLite 更新很多行非常慢

    我相信我已经使用了很多方法来加速许多行的更新 但到目前为止没有任何帮助 我们正在开立交易 像这样 private SQLiteTransaction BeginTransaction SQLiteConnection connection
  • SaveFileDialog 在 Windows XP 上静默崩溃 WinForms 应用程序

    我正在使用 C NET 4 0 和 DevExpress 组件开发 WinForms 应用程序 在 Windows 7 上一切正常 在 Windows XP SP3 上 SaveFileDialog 显示并关闭几秒钟后 应用程序将默默退出
  • 如何使用 C# 从 asp.net 中的查询字符串中删除项目?

    我想从我的网址中删除 语言 查询字符串 我怎样才能做到这一点 使用Asp net 3 5 c Default aspx Agent 10 Language 2 我想删除 Language 2 但语言将是第一个 中间或最后一个 所以我会有这个
  • 如何在 wpf C# 中播放双音频电影

    基本的 WPF 媒体元素仅播放 MKV 文件 但不查找和提供更改音频的设施 是否可以在 Media element 中播放此类视频 我在 stackoverflow 上搜索了很多问题 例如扩展媒体元素功能等或使用第三方组件 但没有找到任何合
  • WPF DataGrid 验证错误?

    这可能是预期的功能 但对我来说它确实像是一个错误 我正在使用开箱即用的 WPF DataGrid 绑定到 ObservableCollection 和尝试使用一些验证规则来提供良好的用户反馈 不用说 问题多得我数不过来 但我会坚持眼前的问题
  • 私有只读接口 - 它是多余的吗?

    我在我的项目中使用 IoC 和 DI 但是我想知道以下是否是一个好的做法 private readonly IMyService myservice 作为服务使用者的类内的字段 该字段在构造函数中设置 我确信我在某处见过这个并且我已经注意到
  • 来自外部 DLL 的未处理的 DivideByZero 异常 - C#

    我有一个 C net 4 0 程序 其主要功能是从外部 FTP 库 项目引用的 dll 调用方法 逻辑位于 try catch 块中 catch 会打印错误 异常处理程序有一个通用参数 catch Exception ex IDE是VS 有
  • 尝试创建 ssms 加载项时出现问题

    我正在尝试为 SSMS 2008 和 或 2008 R2 创建加载项 但我立即遇到了问题 我可以让我的加载项正常工作 并在 SSMS 启动时让它仅显示一个消息框 但是 下载各种代码示例后 当尝试引用 Microsoft SqlServer
  • SOAP Web 服务的命名空间是否区分大小写?

    我尝试部署一个 Web 服务 并将其更改为一台机器 当我测试其中一个 Web 方法时 我收到一条错误消息 服务器无法识别 HTTP 标头 Soapaction 的值 我做了一些搜索问题 当命名空间存在差异时 似乎有时会发生该错误 我查看了我
  • JPG、DOC、PDF 等文件是否也编译成程序集?

    Q1 Does aspnet compiler exe将网站目录中包含的所有文件 甚至 JPG DOC 和 PDF 类型 编译成程序集 如果将图像添加到Web项目中的文件列表中 从而将它们添加到项目文件中 这些图像也会被VS编译成程序集吗
  • Outlook 插件:从选定的日历中获取元素

    我正在创建 Outlook 加载项 我想知道如何从选定的日历中获取元素 例如 我需要从名为 myCalendar 的日历中获取所有约会项目 现在 我可以从所有日历中获取所有约会项目 谢谢你 这些额外的日历作为主日历文件夹的子文件夹提供 所以

随机推荐