Sto progettando uno strumento .NET che utilizza la reflection per riportare informazioni sui metodi all'interno dei nostri assembly.
È completamente orientato agli oggetti e costituito da oggetti Assembly Objects, Class Objects e Method tutti con le mie informazioni definite che sto recuperando dalla riflessione. Un assembly contiene molte classi e una classe contiene molti metodi.
Il mio problema sta arrivando con una struttura e la convenzione di denominazione è facile da leggere e usare.
La mia struttura oggettuale attuale (di massima approssimazione) (in .NET) è solo:
var assemblyList = new List<Assembly>();
public class Assembly
{
public string Name;
public List<Class> Classes;
}
public class Class {
public string Name;
public List<Method> Methods;
}
public class Method {
public string Name;
}
Funzionerebbe bene, tranne che ho proprietà aggiuntive che desidero avere accanto a ciascuna di queste liste come informazioni di raccolta dati. Questo e io ho delle classi interne che voglio avere per queste definizioni di classe, per esempio all'interno della classe Method potrei voler avere una classe che ho creato chiamata Types.
Il sotto potrebbe essere appropriato (sopporta me come una rappresentazione approssimativa, non gli oggetti reali) o sto facendo un sacco di cose. Non riesco a pensare ad una soluzione corretta, ma mi aspetto che ci sia un modo più semplice per farlo.
public class Class {
public class Context {
public string Name;
public List<Method.Context> Methods;
}
public class List {
public List<Context> List;
public string propertyA;
public int propertyB;
}
public class Tags {
public const string MethodTypeA = "Ex1";
public const string MethodTypeB = "Ex2";
}
}
public class Method
public class Context {
public string Name;
}
public class List {
public List<Context> List;
public string propertyA;
public int propertyB;
}
public class Tags {
public const string ClassTypeA = "Ex1";
public const string ClassTypeB = "Ex2";
}
}
Qualsiasi aiuto sarebbe apprezzato! Le mie capacità di nominare / strutturare le strutture sono piuttosto scarse.