我如何访问发件人对象中的数据列表
How i can access list of data which is in sender object
private void TrendicProductClick(object sender, int position)
{
}
这是我的方法,它给出了发件人和位置。
我想获取发件人 "non-public member" 侧的 _DealList。
我的发件人层次结构是这样的=>
- 发件人
- 基地
- 物品数量
- 非Public会员
- _DealList
我想访问的数据_DealList
要访问发件人的私有属性,正如@Tim 建议的那样,我们需要使用 Reflection
例如让我们假设发件人的类型是 MyClass
并且具有以下结构,那么您可以通过这样做来获得 属性 。我假设 dealList
是 public。否则你也可以使用反射:
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};
}
private void TrendicProductClick(object sender, int position)
{
}
这是我的方法,它给出了发件人和位置。 我想获取发件人 "non-public member" 侧的 _DealList。 我的发件人层次结构是这样的=>
- 发件人
- 基地
- 物品数量
- 非Public会员
- _DealList
我想访问的数据_DealList
要访问发件人的私有属性,正如@Tim 建议的那样,我们需要使用 Reflection
例如让我们假设发件人的类型是 MyClass
并且具有以下结构,那么您可以通过这样做来获得 属性 。我假设 dealList
是 public。否则你也可以使用反射:
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};
}