【发布时间】:2021-10-28 01:48:54
【问题描述】:
如何将“帐户”转换为
<Account>
或“对象名”改成
<Object with matching name>
我正在尝试解析字符串并用对象属性替换字符串中的值。
这与我们发送套用信函的方式类似,您知道尊敬的 [客户名称],感谢您购买 [某些商品]。在这种情况下,字母中的字段不是我设置的,我需要一种将文本块中的内容转换为对象属性的方法。
目前我正在使用字符串 {value=x; 中的代码id=y ;property=z} 并通过 switch case 运行它以将其转换为对象。然后将 {} 替换为对象属性。
例如“一些随机字符串 {value=1;id=1;property=Name} 连续随机字符串”
我解析字符串以定位 {value=,在点击时它会通过 switch case,在 case 1 中:返回 Account(ID = 1)。我抢的 Account.Name
一旦我把它放在一个文本框中,这样用户就可以在生成要发送的最终文档之前验证它是否正确。
有没有办法在字符串中包含 {Object.Property} 然后使用反射将该字符串值转换为对象值?
Get property value from string using reflection
我在其他情况下使用了上述内容,但这需要我拥有对象。
【问题讨论】:
-
我已删除您的 ASP.NET 标记,因为您的问题内容中没有任何与 ASP.NET 相关的内容。我想知道你为什么要重新发明轮子并制作一个穷人的 JSON?
-
您可以使用 JSON 来执行此操作吗?等等等等等等 {Account.Name} 等等等等等等。我用它来抓取一个对象,但不替换字符串中的部分。它也可以是 {Person.Name} 或 {Car.Name}。我不熟悉使用 JSON 执行此操作的方法
-
你能决定你使用的一种模式吗?您发布了:[token]、{token}、{C#_object} 和“token”。看起来您应该使用正则表达式来匹配您的模式并返回任何匹配项的索引。
-
感谢 Oliver 继续让 SO 成为现在的样子....
-
@OlivierRogier 如果知道答案是投反对票的先决条件,那会很酷。
标签: c# string parsing replace reflection