问题再现
今天在开发的时候,遇到了需要传递session的地方,我们这边是用过formstate传递的,如下:
argumentString = string.Format("{FORMSTATE~dwbh}='{0}'&{FORMSTATE~ssbm}='{1}'&{FORMSTATE~year}='{2}'&{FORMSTATE~month}='{3}'&{FORMSTATE~zclb}='{4}'&{FORMSTATE~zcbh}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);
问题分析
因为花括号字符是拿来做填充检测的(比如{0}
表示首个子串),函数并不知道我们最外面的花括号是文本内容,结果就解析失败了。
问题解决
细想一下微软在提供string.Format
方法时,不会没有考虑到花括号问题,就像文本内双引号内容我们用 \" 表示,查了一下果然有代替表示方法,用两个连在一起的“{{”表示“{”,右花括号也同理,所以得到最终解决方案:
argumentString = string.Format("{{FORMSTATE~dwbh}}='{0}'&{{FORMSTATE~ssbm}}='{1}'&{{FORMSTATE~year}}='{2}'&{{FORMSTATE~month}}='{3}'&{{FORMSTATE~zclb}}='{4}'&{{FORMSTATE~zcbh}}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);
istat menu6序列号_木子网
谢谢分享