1

我使用 vs2008 的 GUI 工具生成一些 LINQ to SQL 类,我的问题是 StringTemplate 无法达到这些模型的属性

$persons:{
<li>$it.name$</li>
}$

它打印:

<li></li>
<li></li>
<li></li>

namePerson模型的公共属性。如果我自己创建了一个人类,并且属性相同,StringTemplate 可以得到它。

4

2 回答 2

1

设计者生成一个相对于编译器的普通类,代码只是自动生成的。我怀疑您还有其他问题 - 也许您没有包含正确的引用/命名空间,或者您有命名空间冲突并且它选择了错误的类。

于 2010-01-21T13:23:52.990 回答
0

这不是正确的解决方案,但是我遇到了同样的麻烦,并且使用$it._name$对我有用。这是访问私有支持字段,所以不是一个好主意。尽管如此,这意味着 StringTemplate 可以找到该字段,但不能找到与之相关的name属性。奇怪的。

编辑:

知道了。StringTemplate 假定属性以大写字母开头。因此,如果您的财产被调用Name,它将起作用。您可以重命名您的属性或修复 StringTemplate 源代码中的有问题的代码位在 ASTExpr.cs:RawGetObjectProperty调用周围GetPropertyValueByName(它使用methodSuffix,而不是propertyName)。

于 2010-08-11T16:14:34.610 回答