XsltArgumentListにはcount()メソッドがありません。それを得る方法はありますか?.NET XsltArgumentList - パラメータを数えたり列挙する方法はありますか?
また、列挙するforeach構造をサポートしていないようです。
また、Visual Studio 2010 Xsltデバッガで、xslt引数の使用方法は?
XsltArgumentListにはcount()メソッドがありません。それを得る方法はありますか?.NET XsltArgumentList - パラメータを数えたり列挙する方法はありますか?
また、列挙するforeach構造をサポートしていないようです。
また、Visual Studio 2010 Xsltデバッガで、xslt引数の使用方法は?
あなたは正確に何をしようとしていますか?もっと情報を得ることはできますか?通常は、XSLTに渡してそこから引数リストを生成するために必要なパラメータを知っています。通常、ループする必要がある引数リストは表示されません。
リフレクションを使用して、このデータを格納するプライベートフィールドparameters
にアクセスできます。これは、文書化されていない実装の詳細に依存することを意味し、いつでも破損する可能性があります。
デバッグの目的のためだけに、私は大丈夫だと思います。ウォッチウィンドウから利用可能であり、直接ウィンドウに?xslArg.parameters
と入力してください。
XsltArgumentList xslArg = new XsltArgumentList();
string name = "John";
xslArg.AddParam("name", "", name);
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
FieldInfo fi = xslArg.GetType().GetField("parameters", BindingFlags.NonPublic |
BindingFlags.Instance);
System.Collections.Hashtable parameters = fi.GetValue(xslArg) as System.Collections.Hashtable;
if (parameters != null)
{
foreach (System.Collections.DictionaryEntry item in parameters)
Console.WriteLine("{0} | {1}", item.Key, item.Value);
}
もう1つの方法は、ラッパークラスを作成することです。このクラスにはAddメソッドとRemoveメソッドが含まれ、パラメータコレクションとXsltArgumentListが公開され、2つを同期させる責任があります。
パーフェクト。ありがとう! – writedn
あなたがしようとしていることは明確ではありません。 **あなたが渡すパラメータ**を知っている必要があります**!特定のスタイルシートが予期しているパラメータを知りたければ、この質問を言い換えるべきです。 –