Переопределить свойства с помощью отражения - PullRequest
0 голосов
/ 25 мая 2018

Я бы хотел переопределить все свойства вызовами пользовательских методов с помощью отражения.

Единственный способ - использовать PropertyBuilder и ILGenerator?Я только что нашел документацию о создании новой сборки и нового класса, но не о переопределении свойства в определенном классе.

Это пример класса со свойствами только для int.

public class Foo : MyContext
{
    public int Bar { get; set; }
    public int Baz { get; set; }
}

public class MyContext
{
    public MyContext()
    {
        var props = this.GetType().GetProperties();
        foreach(var p in props)
        {
            //...
        }
    }

    protected void CustomSet(string propName, int value)
    {
        //...
    }

    protected int CustomGet(string propName)
    {
        //...
    }
}

Иэто ожидаемое поведение.

public class FooReflected : MyContext
{
    public int Bar 
    {
        get { return CustomGet("Bar"); }
        set { CustomSet("Bar", value); }
    }

    public int Baz
    {
        get { return CustomGet("Baz"); }
        set { CustomSet("Baz", value); }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...