Ich evaluiere ein Skript mit der CSharpScript.EvaluatyAsync<T>
Methode und übergibt einige C# -Code. Ich kann die Zeilennummer von Fehlern leicht sehen, wenn es ein Analyseproblem gibt, z. ein Syntaxfehler, aber wenn es eine Laufzeitausnahme gibt, bekomme ich nur eine AggregateException
, die meine Ausnahme (NullReferenceException
) in diesem Fall einwickelt, aber es gibt keine Ahnung, wie man die Zeilennummer für mich bekommt (3 in diesem Beispiel unten).Ausnahmelinie Nummer in CSharpScript.EvaluateAsync
Console.WriteLine(CSharpScript.EvaluateAsync<int>(
@"string s = null;
// some comment at line 2
var upper = s.ToUpper(); // Null reference exception at line 3
// more code").Result);
EDIT:
Ich habe dies erforscht und festgestellt, dass der Scripting-API eine Baugruppe ohne PDB-Informationen erzeugt here line 127 so wird dies nicht möglich sein, zu wissen, wo die Ausnahme passiert ist. Habe ich recht?
[Mein triviale Versuch, den Code, den Sie wies Festsetzung] (https://github.com/svick/roslyn/commit/5030b3cce03e57ab4d5a36eb1d113ba2d36f7c9b) hat nichts geändert, also schlage ich vor, dass Sie dies als Problem beim Roslyn-Repo einreichen. – svick