在 xml 配置中创建命名字符串
Create a named string in xml configuration
可以为接口或非基元创建命名注册,e.g.
...
<register type="ILogger" mapTo="PageAdminLogger" name="emergency" />
...
是否也可以为字符串创建命名注册,尤其是将被多次使用的字符串?我的目标是:
...
<container>
<register type='System.String' name='serverAddress'>
127.0.0.1
</register>
<register type='IFooConnector' mapTo='FooConnector'>
<constructor>
<param name='addr' dependencyName='serverAddress'/>
</constructor>
</register>
<register type='IBarDoer' mapTo='BarDoerOnAServer'>
<constructor>
<param name='server' dependencyName='serverAddress'/>
</constructor>
</register>
</container>
...
所以当 FooConnector
和 BarDoerOnAServer
构造时,它们都将 "127.0.0.1"
作为其构造函数的输入,但 "127.0.0.1"
仅在一个地方编码(减少重复),以及所有文字变量(例如端口、超时、用户名等)都配置在一个地方,而不是散落在配置文件周围。
是的,您可以使用 Unity 的 XML 配置创建命名字符串。
为此,您可以使用 instance 元素。
在您的示例中,它看起来像:
<container>
<instance name='serverAddress' value='127.0.0.1' />
<register type='IFooConnector' mapTo='FooConnector'>
<constructor>
<param name='addr' dependencyName='serverAddress'/>
</constructor>
</register>
<register type='IBarDoer' mapTo='BarDoerOnAServer'>
<constructor>
<param name='server' dependencyName='serverAddress'/>
</constructor>
</register>
</container>
可以为接口或非基元创建命名注册,e.g.
...
<register type="ILogger" mapTo="PageAdminLogger" name="emergency" />
...
是否也可以为字符串创建命名注册,尤其是将被多次使用的字符串?我的目标是:
...
<container>
<register type='System.String' name='serverAddress'>
127.0.0.1
</register>
<register type='IFooConnector' mapTo='FooConnector'>
<constructor>
<param name='addr' dependencyName='serverAddress'/>
</constructor>
</register>
<register type='IBarDoer' mapTo='BarDoerOnAServer'>
<constructor>
<param name='server' dependencyName='serverAddress'/>
</constructor>
</register>
</container>
...
所以当 FooConnector
和 BarDoerOnAServer
构造时,它们都将 "127.0.0.1"
作为其构造函数的输入,但 "127.0.0.1"
仅在一个地方编码(减少重复),以及所有文字变量(例如端口、超时、用户名等)都配置在一个地方,而不是散落在配置文件周围。
是的,您可以使用 Unity 的 XML 配置创建命名字符串。
为此,您可以使用 instance 元素。
在您的示例中,它看起来像:
<container>
<instance name='serverAddress' value='127.0.0.1' />
<register type='IFooConnector' mapTo='FooConnector'>
<constructor>
<param name='addr' dependencyName='serverAddress'/>
</constructor>
</register>
<register type='IBarDoer' mapTo='BarDoerOnAServer'>
<constructor>
<param name='server' dependencyName='serverAddress'/>
</constructor>
</register>
</container>