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完成工作,谢谢!