broken intellisense with obfuscated assembly?
I'm using LINQPad v4.43.05(AnyCPU)
In a new query window, I hit F4 and added Aspose.Slides via NuGet - I confirmed that it installed correctly, at least in terms of writing it under %localappdata%\LINQPad\NuGet and if I run a 'C# Statement(s)' query of this:
Loading the assembly in reflector shows that a lot of the namespaces are ones that it doesn't understand (the names just show up with boxes for the characters). I'm not sure if they're valid Unicode/utf8/something that would be fine from C# or if they're in a 'valid for MSIL, but not valid in C#' state. In any case, near the bottom of the list of namespaces shown in reflector are their public classes, like Aspose.Slides, Aspose.Slides.Effects, etc.
I'm *guessing* this is obfuscation - it could be some other process that just looks like obfuscated results, I suppose. Thankfully it should be easy to reproduce since it's just 'install Aspose.Slides via NuGet into a LINQPad query window'
Since the intellisense in linqpad doesn't show any of these namespaces, my current guess is that the 'mangled' namespaces in the assembly are causing the 'valid' ones to be skipped / not imported.
Is there any chance whatever the intellisense namespace-population logic is could be changed to handle assemblies (like this one) where some of the namespaces are 'mangled' (but still valid, presumably, since the code runs fine), but still including the ones that are fine?
Thanks!
In a new query window, I hit F4 and added Aspose.Slides via NuGet - I confirmed that it installed correctly, at least in terms of writing it under %localappdata%\LINQPad\NuGet and if I run a 'C# Statement(s)' query of this:
var foo = new Aspose.Slides.Presentation(); AppDomain.CurrentDomain.GetAssemblies().Dump();I get an entry that shows a FullName of Aspose.Slides, Version=6.9.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56 and a CodeBase/Location of a shadow dll (...\Temp\LINQPad\hgwuivix\shadow_qcookm\aspose.slides.dll)
Loading the assembly in reflector shows that a lot of the namespaces are ones that it doesn't understand (the names just show up with boxes for the characters). I'm not sure if they're valid Unicode/utf8/something that would be fine from C# or if they're in a 'valid for MSIL, but not valid in C#' state. In any case, near the bottom of the list of namespaces shown in reflector are their public classes, like Aspose.Slides, Aspose.Slides.Effects, etc.
I'm *guessing* this is obfuscation - it could be some other process that just looks like obfuscated results, I suppose. Thankfully it should be easy to reproduce since it's just 'install Aspose.Slides via NuGet into a LINQPad query window'
Since the intellisense in linqpad doesn't show any of these namespaces, my current guess is that the 'mangled' namespaces in the assembly are causing the 'valid' ones to be skipped / not imported.
Is there any chance whatever the intellisense namespace-population logic is could be changed to handle assemblies (like this one) where some of the namespaces are 'mangled' (but still valid, presumably, since the code runs fine), but still including the ones that are fine?
Thanks!
Comments
Thanks!