[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) });