Динамическое создание переменных в C# и работы с ними.

Получение списка классов в сборке:
Тут мы получаем список классов в интересущем нас пространстве имен, можно также указать конкретный класс, или что либо еще.

String namespace = "ClassLibrary1.SomeNamspace";
var  library = (AppDomain.CurrentDomain.GetAssemblies().
Where(w => w.FullName.Contains(namespace)))

 Получение списка полей в классе:
Тип свойства можно указывать, скажем мы хотим получить публичные свойства.

Type type = library.GetType("ClassName");
PropertyInfo[] properties = 
type.GetProperties(BindingFlags.Instance | BindingFlags.Public);
foreach (PropertyInfo property in properties)
{
string propertyName = property.Name;
}

 Создание динамической переменной:

var currentType = (from i in library.GetTypes()
where i.FullName.Contains("CurrentClassName")
select i).FirstOrDefault();
var variable = Activator.CreateInstance(currentType); //создали перменную

 Записать данные в переменную:

currentType.GetProperty("ClassPropertyName").
SetValue(variable, "Новое значение свойства", null);

 Взять данные из переменной:

string getProperty = (string)currentType.GetProperty("ClassProperyName").
GetValue(variable, null);

Add comment