【问题标题】:Simple Injector pass hard coded values into constructor简单注入器将硬编码值传递给构造函数
【发布时间】:2012-11-24 16:24:06
【问题描述】:

Simple Injector 我可以做到以下几点:

container.RegisterSingle<IAuctionContext>(() => new AuctionContext(
    new Uri("http://localhost:60001/AuctionDataService.svc/")));

我在这里所做的是,当找到IAuctionContext 时,用这个新的AuctionContext 替换它。问题是调用RegisterSingle 时,只会使用AuctionContext 的单个实例。我希望它能够像上面那样传递Uri 参数但没有单个实例但每次都允许一个新实例。

这怎么可能?

【问题讨论】:

标签: c# dependency-injection ioc-container simple-injector


【解决方案1】:

您尝试注入的值是一个简单的硬编码值。对于硬编码值和配置值等常量值,只需使用Register 方法:

var uri = new Uri("http://localhost:60001/AuctionDataService.svc/");

container.Register<IAuctionContext>(() => new AuctionContext(uri));

Register 方法确保每次都返回一个新实例。

关于注入在应用程序过程中可能发生变化的值,请阅读this article about injecting runtime data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多