Динамическая генерация класса (Emit). Как это делается?
От: BKnight Россия  
Дата: 06.11.07 11:29
Оценка:
Народ, кто работал с динамической генерацией кода, подскажите плз! Надо сделать "сборный" класс, который содержит свойства для получения значений свойств из заданных классов.

Например есть такое:
internal class A
{
    private Dictionary<string, object> _dictionary = new Dictionary<string, object>();
    // В эту коллекцию где-нить заносятся данные. типа того:
    // _dictionary["number"] = 1;
    // _dictionary["str"] = "some string";

    public string SomeProperty
    {
        get { return "Hello, world!"; }
    }

    public Dictionary<string,object> SomeOtherProperty
    {
        get { return _dictionary; }
    }
}


Как сгенерировать класс B по классу A наподобие этого:
internal class B
{
    private A _a;

    public string SomeProperty
    {
        get { return _a.SomeProperty; }
    }


    public int number
    {
        get { return (int)_a.SomeOtherProperty["number"]; }
    }

    public string str
    {
        get { return (string)_a.SomeOtherProperty["str"]; }
    }
}


Подскажите, плз.

з.ы. Emit'ом пользоваться не очень умею, посиму, ответа "копай в сторону emit" просьба не давать...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.