そのためにReflectionを使用できます。
Type type = typeof(Person);
var properties = type.GetProperties(); // public properties
var methods = type.GetMethods(); // public methods
var name = type.Name;
更新あなたのための最初のステップはあなたのクラスをコンパイルすることです
sring source = textbox.Text;
CompilerParameters parameters = new CompilerParameters() {
GenerateExecutable = false,
GenerateInMemory = true
};
var provider = new CSharpCodeProvider();
CompilerResults results = provider.CompileAssemblyFromSource(parameters, source);
次に、テキストが有効なc#コードであるかどうかを確認する必要があります。実際には、コードは無効です-メソッドDoSomethingはvoidとしてマークされていますが、文字列を返します。
if (results.Errors.HasErrors)
{
foreach(var error in results.Errors)
MessageBox.Show(error.ToString());
return;
}
ここまでは順調ですね。次に、コンパイルされたメモリ内アセンブリから型を取得します。
var assembly = results.CompiledAssembly;
var types = assembly.GetTypes();
あなたの場合、Person
タイプのみがあります。しかしとにかく-Reflectionを使用して、これらのタイプからプロパティやメソッドなどを取得できるようになりました。
foreach(Type type in types)
{
var name = type.Name;
var properties = type.GetProperties();
}