You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
I would like to be able to use the WholeProjectDecompiler in a way that doesn't seem supported with the current API without some intrusive measures. Specifically, I would like to be able to output the C# code, but in a manner that is similar to what I would get if I were to have the C# code with its associated IL commented out next to it on each lines.
The GUI frontend has the option to have IL with C# which is close, but it's not possible to export it in such a way that I have a csproj with many .cs files that are outputed this way. In other words, I HAVE to use the UI to have this view which isn't suitable for my needs, I am more looking an an actual project export with the IL commented out.
The problem is while this could be technically possible (I can compare the sequence point of a ReflectionDisassembler vs a CSharpDecompiler), the current api are too restrictive for me to be able to do this easily. Sepcifically, while I can inherit from WholeProjectDecompiler, it doesn't allow me to override what happens when it tries to write to a file. The API are done in such a way that I cannot have any logic there: I have to let it decompile all .cs files with its own internal logic. It's also not possible to insert the commented IL after the fact because I would need to have the sequence points of each lines, but because I cannot have logic when it writes the code, I cannot know this informations.
Essentially, the current API is too restrictive to do this.
Describe the solution you'd like
Something more modular regarding how the files are decompiled. A couple ideas that comes in my mind (but I am open for discussions):
Something where I can customise what happens in the ProcessFiles local method:
I am unsure how successful I would be on this one, but it might be possible if I could override what syntax tree visitor is used here instead of CSharpOutputVisitor:
I am relatively open for discussions on this. Even if my implementation may involve duplicating SOME code of the library, my goal is I wouldn't have to duplicate everything or to intrusively modify it to do what I want and I could see other usecases for this where one might want to add comments over lines of interests, but for me specifically, I am looking to add the IL as comments. Currently, the GUI application only allows me to export all the code in one file which isn't practical if I could leverage the project exporter feature.
My one requirement is it should be possible to do with the nuget package as I find it the most modular way to use ILSpy which I need for other reasons.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
I would like to be able to use the WholeProjectDecompiler in a way that doesn't seem supported with the current API without some intrusive measures. Specifically, I would like to be able to output the C# code, but in a manner that is similar to what I would get if I were to have the C# code with its associated IL commented out next to it on each lines.
The GUI frontend has the option to have IL with C# which is close, but it's not possible to export it in such a way that I have a csproj with many .cs files that are outputed this way. In other words, I HAVE to use the UI to have this view which isn't suitable for my needs, I am more looking an an actual project export with the IL commented out.
The problem is while this could be technically possible (I can compare the sequence point of a ReflectionDisassembler vs a CSharpDecompiler), the current api are too restrictive for me to be able to do this easily. Sepcifically, while I can inherit from WholeProjectDecompiler, it doesn't allow me to override what happens when it tries to write to a file. The API are done in such a way that I cannot have any logic there: I have to let it decompile all .cs files with its own internal logic. It's also not possible to insert the commented IL after the fact because I would need to have the sequence points of each lines, but because I cannot have logic when it writes the code, I cannot know this informations.
Essentially, the current API is too restrictive to do this.
Describe the solution you'd like
Something more modular regarding how the files are decompiled. A couple ideas that comes in my mind (but I am open for discussions):
ILSpy/ICSharpCode.Decompiler/CSharp/ProjectDecompiler/WholeProjectDecompiler.cs
Line 267 in d777148
ILSpy/ICSharpCode.Decompiler/CSharp/ProjectDecompiler/WholeProjectDecompiler.cs
Line 215 in d777148
ILSpy/ICSharpCode.Decompiler/CSharp/ProjectDecompiler/WholeProjectDecompiler.cs
Line 309 in d777148
Additional context
I am relatively open for discussions on this. Even if my implementation may involve duplicating SOME code of the library, my goal is I wouldn't have to duplicate everything or to intrusively modify it to do what I want and I could see other usecases for this where one might want to add comments over lines of interests, but for me specifically, I am looking to add the IL as comments. Currently, the GUI application only allows me to export all the code in one file which isn't practical if I could leverage the project exporter feature.
My one requirement is it should be possible to do with the nuget package as I find it the most modular way to use ILSpy which I need for other reasons.
The text was updated successfully, but these errors were encountered: