Given a .NET type object found through reflection, is it possible to pretty print or decompile this type as a C# declaration, taking into account C# type aliases, etc.?
For example,
Int32 -> int
String -> string
Nullable<Int32> -> int?
List<au.net.ExampleObject> -> List<ExampleObject>
I want to be able to print out methods close to what was originally written in the source.
If there isn't anything in the .NET framework, is there a third-party library? I might possibly have a look at ILSpy.
C library function - getc() The C library function int getc(FILE *stream) gets the next character (an unsigned char) from the specified stream and advances the position indicator for the stream.
The getc function in C reads the next character from any input stream and returns an integer value. It is a standard function in C and can be used by including the <stdio. h> header file.
getc( ) function is used to read a character from file.
The gets function is part of the <stdio. h> header file in C. Function gets allows space-separated strings to be entered by the user. It waits until the newline character \n or an end-of-file EOF is reached.
See this answer.
Example:
using System.CodeDom;
using System.CodeDom.Compiler;
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
var typeRef = new CodeTypeReference("System.Nullable`1[System.Int32]");
string typeOutput = provider.GetTypeOutput(typeRef); // "System.Nullable<int>"
It will help you with int
and string
-like things, as well as generics, however you'll have to work out Nullable<T> -> T?
and using
s yourself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With