C# 访问列表<;T>;当T是内部类时

C# 访问列表<;T>;当T是内部类时,c#,reflection,access-modifiers,C#,Reflection,Access Modifiers,我访问的字段类型为List,而EntityNetPlayer类为内部类(来自外部程序集) 如何为该类创建列表字段 public static object GetAlivePlayers(object instance) => instance.GetType() .GetField("AlivePlayers", BindingFlags.Instance |BindingFlags.NonPublic) .GetValue(instance) 你说的“列出那种

我访问的字段类型为
List
,而
EntityNetPlayer
类为内部类(来自外部程序集)

如何为该类创建列表字段

public static object GetAlivePlayers(object instance) =>
    instance.GetType()
    .GetField("AlivePlayers", BindingFlags.Instance |BindingFlags.NonPublic)
    .GetValue(instance)

你说的“列出那种类型的清单”是什么意思?返回的值不是已经是该类型的吗?或者您的意思是希望
GetActivePlayer
返回
列表
而不是
对象
?这根本不可能,因为列表的实际类型只在运行时知道,而不是在编译时知道。您能提供其他代码吗?具体来说,EntityNetPlayer类代码和封装该类代码的代码(它所处的类)?您已经获得的
对象
是一个
列表
。问题是您不能在编译时引用它。您可以将其强制转换为
IList
,以访问其中的单个对象。如果类/属性/etc是私有的,则无法在其范围之外使用它。这是私人的宣言。您可以通过反射(如果允许的话)阅读类及其属性等,创建自己的副本并使用itIList完成工作,谢谢!