C#, Net 2.0Quel est le problème avec ce code de réflexion? GetFields() retourne un tableau vide
Voici le code (j'ai pris toutes mes affaires spécifiques au domaine, et il retourne encore un tableau vide):
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ChildClass cc = new ChildClass();
cc.OtherProperty = 1;
FieldInfo[] fi = cc.GetType().GetFields();
Console.WriteLine(fi.Length);
Console.ReadLine();
}
}
class BaseClass<T>
{
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
}
class ChildClass : BaseClass<ChildClass>
{
private int myVar;
public int OtherProperty
{
get { return myVar; }
set { myVar = value; }
}
}
}
+1 Ceci est l'une, vous devez * spécifier * Instance ainsi que NonPublic. –
Bravo pour la réponse! J'ai du mal à le comprendre. Quelqu'un pourrait-il expliquer pourquoi Instance ou Static est requis avec NonPublic pour les champs privés? – Zack
@ rory.ap: Oui, exactement. –