如題?

解决方案 »

  1.   

    private void btnList_Click(object sender, System.EventArgs e)
      {   string fileName=labelFile.Text.Trim();
       string result="";
       txtMethods.Text="";
       txtTypes.Text="";   if(File.Exists(fileName))
       {
        try
        {
         Assembly assembly=Assembly.LoadFrom(fileName);
         Type[] types=assembly.GetTypes();
         result="The Assembly contains the following types :"+Environment.NewLine;
        
         for(int i=0;i<types.GetLength(0);++i)
         {
          result+="\t "+i+":"+types[i].Name+" "+" "+Environment.NewLine;      // Get the public methods.
          MethodInfo[] myArrayMethodInfo=types[i].GetMethods(BindingFlags.Public|BindingFlags.Instance|BindingFlags.DeclaredOnly);
          txtMethods.Text=txtMethods.Text+Environment.NewLine+"The number of public methods in "+types[i].Name+" is "+myArrayMethodInfo.Length+Environment.NewLine;
          // get all the methods.
          txtMethods.Text=txtMethods.Text+getMethodInfo(myArrayMethodInfo);
          /*
          // Get the nonpublic methods.
          MethodInfo[] myArrayMethodInfo1 = myType.GetMethods(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.DeclaredOnly);
          Console.WriteLine("\nThe number of protected methods is {0}.", myArrayMethodInfo1.Length);
          // Display information for all methods.
          LabelFile.Text=DisplayMethodInfo(myArrayMethodInfo1);
          */     }     foreach(Type myType in types)
         {
          // Get the public properties.
          PropertyInfo[] myPropertyInfo = myType.GetProperties(BindingFlags.Public|BindingFlags.Instance);
          Console.WriteLine("The mumber of public properties in "+myType.Name+" is {0}.", myPropertyInfo.Length);
          // Display the public properties.
          getPropertyInfo(myPropertyInfo);
          // Get the nonpublic properties.
          PropertyInfo[] myPropertyInfo1 = myType.GetProperties(BindingFlags.NonPublic|BindingFlags.Instance);
          txtMethods.Text=txtMethods.Text+Environment.NewLine+("The number of NonPublic properties in "+myType.Name+" is "+ myPropertyInfo1.Length)+Environment.NewLine;
          // Display all the nonpublic properties.
          txtMethods.Text=txtMethods.Text+getPropertyInfo(myPropertyInfo1);
         }     txtTypes.Text=result;
        }
        catch(Exception ee)
        {
         throw ee;
        }
        
       }  }  /// <summary>
      /// get Method informations from MethodInfo[] Array:
      /// </summary>
      /// <param name="myArrayMethodInfo"></param>
      /// <returns></returns>
      public string getMethodInfo(MethodInfo[] myArrayMethodInfo)
      {
       string methodStr="";
       ///
       ///getinformation for all methods.
       for(int i=0;i<myArrayMethodInfo.Length;i++)
       {
        MethodInfo myMethodInfo = (MethodInfo)myArrayMethodInfo[i];
        methodStr+="Method "+i+" :"+ myMethodInfo.Name+Environment.NewLine;
       }   
       return methodStr;
      }  /// <summary>
      /// get properties information from PropertyInfo[] Array:
      /// </summary>
      /// <param name="myPropertyInfo"></param>
      /// <returns></returns>
      public string getPropertyInfo(PropertyInfo[] myPropertyInfo)
      {
       string propStr="";
       // Display information for all properties.
       for(int i=0;i<myPropertyInfo.Length;i++)
       {
        PropertyInfo myPropInfo = (PropertyInfo)myPropertyInfo[i];
        propStr+="property "+i+":"+ myPropInfo.Name+" type:"+ myPropInfo.PropertyType+Environment.NewLine;
       }
       return propStr;
      }
      

  2.   

    怎樣能將它的屬性的值也能取出來呢?
    如:
    class aaa
    {
                      private string _a;
    private string _b;
    private int _id;
    public string Number
    {
    get{return this._a;}
    set{this._a = value;}
    } public string Name
    {
    get{return this._b;}
    set{this._b = value;}
    } public int ID
    {
    get{return this._id;}
    set{this._id = value;}
    }
    }aaa mya = new aaa();
    mya.Number = "0001";
    mya.Name = "123";
    mya.ID = "0001";如何將我已實例化的mya對象的各個屬性與屬性值取出來。