private void TrendicProductClick(object sender, int position)
{
}


这是给我发件人和职位的方法。
我想获得_DealList,它位于发件人的“非公开成员”一方。
我的发件人层次结构是这样的=>


发件人


基础
物品计数
非公众成员


_交易清单




我想访问_DealList的数据

最佳答案

要访问发件人的私有属性,如@Tim所建议,我们需要使用Reflection

例如让我们假设发送者的类型是MyClass并具有以下结构,那么您可以通过执行以下操作获取属性。我假设dealList是公开的。否则,您也可以使用反射:

class Program
{
    static void Main(string[] args)
    {
        MyClass myObj = new MyClass();
        FooBar(myObj);
    }
    public static void FooBar(object sender)
    {
        Type t = typeof(MyClass);
        var info = t.GetField("deal",BindingFlags.NonPublic | BindingFlags.Instance);
        var dealObject = info?.GetValue(sender);
        var dealListObj = ((DealList) dealObject)?.dealList;
    }
}

public class MyClass
{
    private DealList deal = new DealList();
    public void Foo() { }
}

public class DealList
{
    public List<int> dealList = new List<int>() {2,3};
}

07-26 08:39