是否有一种简单的“内置方式”组合路径,将它们用作单个参数?
我使用一个名为SpringPathCombiner的自己的实现来执行以下操作:
<property name="CombinedPath">
<object type="SpringExt.SpringPathCombiner, SpringExt">
<constructor-arg name="path1">
<object factory-method="GetBasePath" factory-object="MyConfig" />
</constructor-arg>
<constructor-arg name="path2" value="Temp" />
</object>
</property>
这会将Combined路径设置为返回值的组合 方法GetBasePath与“Temp”一起使用,例如C:\ MyBasePath \温度
SpringPathCombiner类本身非常简单:
public class SpringPathCombiner
{
private readonly string path;
public SpringPathCombiner(string path1, string path2)
{
path = Path.Combine(path1, path2);
}
public static implicit operator string(SpringPathCombiner combiner)
{
return combiner.path;
}
public override string ToString()
{
return path;
}
}
但是我不想让代码重复,我认为必须通过一种方式来处理Spring本身带来的事情。没有自己的实现,任何人都知道如何做到这一点,例如直接使用Path.Combine?
答案 0 :(得分:2)
您是否尝试过使用表达式?例如:
<object id="MyObject" type="q8892913.MyClass, q8892913">
<property name="Path" expression="T(System.IO.Path).Combine('c:\dev', 'Temp')" />
</object>
您也可以轻松使用其他对象的属性:
<object id="MyObject" type="q8892913.MyClass, q8892913">
<property name="Path" expression="T(System.IO.Path).Combine(@(MyConfig).Path, 'Temp')" />
</object>
<object id="MyConfig" type="q8892913.MyClass, q8892913">
<property name="Path" value="c:\dev" />
</object>