1

vs2008 の GUI ツールを使用して LINQ to SQL クラスを生成します。私の問題は、StringTemplate がそれらのモデルの属性に到達できないことです。

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

それは印刷しました:

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

namePersonモデルのパブリック プロパティです。自分で person クラスを作成し、同じ属性を作成すると、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 に答える