Чтобы получить доступ к закрытым свойствам отправителя, как подсказал @Tim, нам нужно использовать Reflection
например. давайте предположим, что тип отправителя MyClass
и имеет следующую структуру, тогда вы можете получить свойство, выполнив это. Я предполагаю, что dealList
является публичным. В противном случае вы можете использовать Reflection для этого:
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};
}