Ich verwende DotLiquid auf dem neuesten SVN Commit und versuche den folgenden "einfachen" Code.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 })));
Der Fehler tritt in der RenderAndRethrowErrors-Methode auf.
Hier ist ein Stack-Trace:
bei DotLiquid.Context.HandleError (Exception ex)
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
....
Jedoch ergibt dies eine Nullreferenceexception.
Das Buch ist eine Klasse, die Drop erweitert, und diese Methode wird in einer ObjectListView aufgerufen, wenn eine Auswahländerung auftritt.
Kann mir hier jemand helfen?
Cheers,
genau welcher Befehl ergibt die Ausnahme? –
-1 Nehmen Sie sich Zeit, um zuerst die NPE/NRE-Fehler zu beheben. Ein NRE könnte aus fast allen dieser Linien erzeugt werden - die Frage, wie sie jetzt ist, ist daher fast nutzlos. Ein Teil der Programmierung besteht darin, ein Problem systematisch zu isolieren, vorzugsweise mit einem Debugger, aber es ist auch möglich mit Divide-and-Conquer-Kommentaren, expliziten Null-Checks und/oder "Trace-Print" -Anweisungen. Geben Sie in solchen Fragen zumindest das * top * eines Stack-Trace ein. –
Fertig. Hat den Stack-Trace gepostet. – Trefex