Dictionary<String, String>クラスの例を、キーが変数名(クラスフィールド名)で値が変数の現在割り当てられている値に変換することを何度も考えています。したがって、単純なクラスがあります。
public class Student
{
    public String field1;
    public Int64 field2;
    public Double field3;
    public Decimal field4;
    public String SomeClassMethod1()
    {
        ...
    }
    public Boolean SomeClassMethod2()
    {
        ...
    }
    public Int64 SomeClassMethod1()
    {
        ...
    }
}
私はそれが次のようになることを期待しています:
static void Main(String[] args)
{
    Student student = new Student(){field1 = "", field2 = 3, field3 = 3.0, field4 = 4.55m};
    Dictionary<String, String> studentInDictionary = ConvertAnyToDictionary<Student>(student);
}
public Dictionary<String, String> ConvertAnyToDictionary<T>(T value) where T:class
{
...
}
それを実現する方法についてのアイデアはありますか?アドバイスがあればよろしくお願いします。
EDIT1: 期待される結果:
studentInDictionary[0] = KeyValuePair("field1", "");
studentInDictionary[1] = KeyValuePair("field2", (3).ToString());
studentInDictionary[2] = KeyValuePair("field3", (3.0).ToString());
studentInDictionary[3] = KeyValuePair("field4", (4.55m).ToString());