我有一种情况,我希望能够动态构建一个xpath,最好使用增量网功能点符号,例如:
var xpath = new Xpath().base.result.entry.name['ethernet1/1']
会返回类似的内容:
/device[@type=base]/result/entry[@name='ethernet1/1']
到目前为止,我得到了这段代码:
public class Xpath
{
private StringBuilder _stringBuilder { get; set; }
public Xpath base => this.Append("base");
// other similar (^) properties here
internal Xpath Append(string value)
{
_stringBuilder.Append(value);
return this;
}
public override string ToString()
{
return _stringBuilder.ToString();
}
}
代码可以工作,但是如果可能的话,我希望避免为每个可能的增量编写属性,而是让它只根据动态对象的所有属性构造一个字符串。
我试过看看我可以用dynamic
属性做些什么,但是我找不到任何可以帮助我朝正确方向发展的例子。
是否有人遇到过类似的问题,或者对如何解决此问题有任何更好的建议?
谢谢!