[C#.NET]透過Reflection取得類別的所有常數資訊

  • 43
  • 0
  • 2020-05-28

[C#.NET]透過System.Reflection取得類別的所有常數資訊

 public sealed class ClassOnvifXmlNameSpaces
   {


        public XNamespace SOAP_ENV = "http://schemas.xmlsoap.org/soap/envelope/"; //SOAP 1.1

        public ClassOnvifXmlNameSpaces(){
            
            Type t = this.GetType();
            
            foreach (FieldInfo m in t.GetFields())
            {
                Debug.WriteLine("FieldInfo:{0}{1}", new object[] { m.Name,m.FieldType });
                //找 XNamespace SOAP_ENV
                if(m.FieldType == typeof(XNamespace))
                {
                    //回傳 SOAP_ENV 的物件
                    XNamespace x = m.GetValue(this) as XNamespace;
                    
                    Debug.WriteLine("XNamespace:{0}={1}", new object[] { m.Name,x.ToString() });
                }
                
            }

        }
ClassOnvifDevice classTonyDevice = new ClassOnvifDevice();
            var m = (from tm in classTonyDevice.GetType().GetMethods()
                     where tm.Name== xn
                     select tm
                   ).FirstOrDefault();
            var xmp = m.GetParameters()[0].ParameterType;
            
            m.Invoke(classTonyDevice, new object[] { xmp.Assembly.CreateInstance(xmp.FullName) });