• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        .net的reflection (2)

        .net的reflection (2)

        更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

        一旦得到類對象,上表中所列的方法就能被叫來調用reflaction.第一個例子將檢查在CSharpReflectionSamples.Reflect類中的得到方法的信息。第一塊代碼用來定義類中的每個方法的名字,第二塊代碼將闡述得到方法信息。向下面所展示的,我們將用一個數組來保存用GetMethod()方法返回的方法信息。MethodInfo類包含信息為方法的名字,不管是否是虛擬的,它都是可見的,等等。

        namespace CSharpReflectionSamples
        {
        using System;
        using System.Reflection;

        /// <summary>
        /// Summary description for Client.
        /// </summary>
        public class Client
        {
        public static void Main()
        {
        // the typeof operator and the GetType method
        // both return a 'Type' object.
        Type type1 = typeof(Reflect);
        Reflect objTest = new Reflect(0);
        Type type2 = objTest.GetType();

        Console.WriteLine("Type of objTest is {0}", type2);
        Console.WriteLine();
        // pause
        Console.ReadLine();

        // reflect method information
        MethodInfo[] minfo = type1.GetMethods();
        // iterate through methods
        foreach (MethodInfo m in minfo)
        {
        Console.WriteLine(m);
        }
        Console.WriteLine();
        }
        }
        }

        下一個例子將展示動態得到對象有可能接觸的每個構造器的信息。類似與上面的例子,我們將返回一個包含每個構造器的信息ConstructorInfo對象。

        namespace CSharpReflectionSamples
        {
        using System;
        using System.Reflection;

        /// <summary>
        /// Summary description for Client.
        /// </summary>
        public class Client
        {
        public static void Main()
        {
        // the typeof operator and the GetType method
        // both return a 'Type' object.
        Type type1 = typeof(Reflect);
        Reflect objTest = new Reflect(0);
        Type type2 = objTest.GetType();

        Console.WriteLine("Type of objTest is {0}", type2);
        Console.WriteLine();
        // pause
        Console.ReadLine();

        // reflect constructors
        ConstructorInfo[] cinfo = type1.GetConstructors();
        // iterate through constructors
        foreach (ConstructorInfo c in cinfo)
        {
        Console.WriteLine(c);
        }
        }
        }
        }

        最后一部分,也許是reflection名字空間中最激動人心的部分,是在運行時動態調用類方法。有兩種方法,首先,我們將建立一個數組來存儲參數,這些參數被構造器用來建造對象。第二,一個System.Object對象將對抗CreateInstance方法的對象。以得到想得到對象的例子。最后,當我們有了對象的資料,我們能夠調用任何使用MethodParm數組的方法。下面是代碼:

        namespace CSharpReflectionSamples
        {
        using System;
        using System.Reflection;

        /// <summary>
        /// Summary description for Client.
        /// </summary>
        public class Client
        {
        public static void Main()
        {
        // the typeof operator and the GetType method
        // both return a 'Type' object.
        Type type1 = typeof(Reflect);
        Reflect objTest = new Reflect(0);
        Type type2 = objTest.GetType();



        // dynamic creation and invocation
        // instantiate the Reflect object, passing
        // a value of 1 to the constructor
        object[] oConstructParms = new object[] {1};
        object obj = Activator.CreateInstance(type1, oConstructParms);
        // invoke method of reflect object
        object[] oMethodParms = new object[] {17};
        int intResult = (int)type1.InvokeMember("AMethod", BindingFlags.Default |
        BindingFlags.InvokeMethod, null, obj, oMethodParms);
        Console.WriteLine("Result of calling AMethod on {0} is {1}",
        type1.Name, intResult);
        // pause
        Console.ReadLine();
        }
        }
        }


        這篇文章闡述了.net Reflaction的基礎,在下一部分,我將和大家討論進一步的話題,比如,動態發布中間語言,旗幟綁定,和中間語言原則。


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲中文字幕乱码熟女在线| 国产亚洲AV无码AV男人的天堂| 337p日本欧洲亚洲大胆艺术| 好男人视频在线观看免费看片| 亚洲黄色在线电影| 午夜免费福利小电影| 精品亚洲成a人片在线观看| 毛片亚洲AV无码精品国产午夜| 中文在线观看免费网站| 久久综合AV免费观看| 亚洲色偷偷偷鲁综合| 中文字幕免费观看视频| 亚洲男同帅GAY片在线观看| 中文无码成人免费视频在线观看 | 欧美大尺寸SUV免费| 亚洲码欧美码一区二区三区| 今天免费中文字幕视频| 亚洲成a人片在线观看老师| 亚洲午夜电影一区二区三区| 不卡视频免费在线观看| 亚洲视频在线观看一区| 国产大片线上免费观看 | 亚洲午夜电影一区二区三区| 日韩一区二区三区免费体验| 亚洲五月激情综合图片区| 999国内精品永久免费观看| 亚洲一本到无码av中文字幕| 又粗又黄又猛又爽大片免费| 中文字幕不卡免费高清视频| 亚洲欧洲国产精品你懂的| 免费做爰猛烈吃奶摸视频在线观看 | 日本片免费观看一区二区| 亚洲hairy多毛pics大全| 亚洲中文久久精品无码| 国产在线观看麻豆91精品免费| 国产精品亚洲lv粉色| 久久精品九九亚洲精品天堂| 最近中文字幕mv手机免费高清 | 亚洲午夜理论片在线观看| 中文字幕精品亚洲无线码一区应用| 亚洲美女免费视频|