我想做的就是(在app.config中)定义一个单身' Int32'。这个想法是它将是一个命名注册,并在多个其他类型定义中用作参数 - 这意味着实际的int值本身只需要定义一次(并减少手动错误)。
以下内容......
<register type="int" name="MyInt">
<lifetime type="singleton" />
<constructor>
<param name="value" value="23"/>
</constructor>
</register>
现在我意识到Int32结构没有这样的构造函数,但我要求的内容似乎很简单,以至于我无法相信它无法完成。
我错过了一些明显的东西吗?
干杯!
答案 0 :(得分:1)
您应该能够指定一个实例:
<container>
<instance name="FooBar" type="System.Int32" value="123" />
</container>
这样解决了:
int value = container.Resolve<int>("FooBar");
如果你需要从配置中构造另一种类型,那就是这样:
<!-- "SomeType" is a type here, but you can have any mapping here -->
<register type="SomeType">
<constructor>
<!-- "value" is the name of the constructor argument -->
<param name="value" dependencyName="FooBar" />
</constructor>
</register>
答案 1 :(得分:0)
你能改变从依赖注入到阅读配置文件的行为吗? Here good example如何将int值放入配置文件并在没有DI的情况下读取它。
第二个解决方案:您可以使用singl属性和必要的构造函数将int值包装到简单对象中。