最新のSVNコミットでDotLiquidを使用していて、次の「簡単な」コードを試しています。C#DotLiquid NullReferenceException
Template.NamingConvention = new CSharpNamingConvention();
Book selectedBook = (Book)this.booksList.SelectedObject;
string pathToTemplate = "..\\..\\..\\Resources\\templates\\white.html";
string res = "";
res = File.ReadAllText(pathToTemplate);
// Parse and compile the template
Template template = Template.Parse(res);
Console.WriteLine(template.RenderAndRethrowErrors(Hash.FromAnonymousObject(new { book = selectedBook })));
エラーは、RenderAndRethrowErrorsメソッドで発生します。ここで
は、スタックトレースです:DotLiquid.Context.HandleErrorで
(例外例)
at DotLiquid.Block.<>c__DisplayClass1.<RenderAll>b__0(Object token)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at DotLiquid.Block.RenderAll(List`1 list, Context context, StringBuilder result)
at DotLiquid.Block.Render(Context context, StringBuilder result)
at DotLiquid.Template.RenderInternal(Context context, Hash registers, IEnumerable`1 filters)
at DotLiquid.Template.Render(Hash localVariables, IEnumerable`1 filters, Hash registers)
at DotLiquid.Template.RenderAndRethrowErrors(Hash hash)
at Collect_It_All.CIA_Main.booksList_SelectedIndexChanged(Object sender, EventArgs e) in D:\Documents\Dev\ezcollector\solution\Collect-It-All\CIA_Main.cs:line 298
at BrightIdeasSoftware.ObjectListView.OnSelectedIndexChanged(EventArgs e) in D:\Documents\Dev\ezcollector\solution\ObjectListView\ObjectListView.cs:line 7350
....
しかし、これはとNullReferenceExceptionが得られます。
ブックは、ドロップを拡張するクラスであり、このメソッドは選択の変更が発生したときにObjectListViewで呼び出されます。
誰でも私をここで助けることができますか?
乾杯、
正確にはどの命令で例外が発生しますか? –
-1 NPE/NREの最初のトラブルシューティングに時間をかけてください。これらの行のほとんどすべてからNREが生成される可能性があります。そのような問題は今のところほとんど無意味です。プログラミングの一部は、好ましくはデバッガを使用して問題を体系的に分離することですが、divide-and-conquerによるコメント、明示的なヌルチェック、および/または「トレース印刷」ステートメントでも可能です。少なくとも、このような質問にはスタックトレースの* top *を含めてください。 –
完了。スタックトレースを投稿しました。 – Trefex