reflection.emit

    5熱度

    1回答

    我希望有人可以指出我正確的方向,並解決以下問題。 我正在使用Reflection.Emit生成類型的項目,所有工作都很好,直到出現需求時,我需要將Func <>傳遞到新對象的構造函數中,如下所示。 public class SearchTerm : IEntity { private readonly NavigationProperty<Item> _item; publ

    5熱度

    1回答

    如何使用C#/ .NET動態修改內存中的MSIL代碼? 是的,我真的希望替換現有的代碼,這些代碼已經在內存中。 具體而言,我不: 尋找只生成新代碼(通過表達模板,的ILGenerator等) 試圖發射在裝載的希望一個新的二進制模塊它進入內存後

    8熱度

    2回答

    試圖創建兩個發出委託的字典,以便在動態獲取/設置屬性值時提高性能。 代碼: Properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(p => p.CanRead && !p.GetIndexParameters().Any()) .AsEnumerab

    6熱度

    2回答

    與創建表達式樹相反,創建直接發送IL的方法之間是否存在性能差異?

    1熱度

    2回答

    我使用的版本跟蹤下面的代碼在一個生成的代理: ConstructorBuilder defaultConstructor = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Type.EmptyTypes);//typeBuilder.DefineDefaultConstruct

    2熱度

    1回答

    我在我的業餘時間一個互動編譯工作兩個名稱相同的領域,我發現我可以使用TypeBuilder定義具有相同名稱的兩個字段定義類型(和類型顯然發射並運行其初始化程序,在這些靜態字段被初始化,就好了)。見我的觀察窗口: 我覺得這很奇怪:可以用同一個名字的兩個字段類型有什麼實際意義?這是每CLR規範真正的「法律」(有興趣的引用),或者是,TypeBuilder或許應該沒有讓這種不確定的或非法的行爲?

    0熱度

    1回答

    我創建了一個類型與System.Reflection.Emit以下MSDN doc 創建我的類型和與此代碼實例: //following the tutorial I created a method which returns a dynamic type Type myDynamicType = CreateNewObject("MyDynamicType", fields); var i

    5熱度

    3回答

    我做了一個生成器類,它構建了一個基於實現接口的接口的代理類。 看到我的帖子在Build a Proxy class based on Interface without implementing it。 我熟悉CustomAttributeData.GetCustomAttributes(MemberInfo target),我在閱讀Interface的成員時使用它,併成功將它們導入代理。 我想在

    0熱度

    1回答

    採取以下C#代碼 namespace lib.foo { public class A { public A (int x) {} public int GetNumber() { return calculateNumber(); } private int calculateNumber() { return lib.bar.B.ProduceNumbe

    1熱度

    1回答

    從MSDN: 可以使用DynamicMethod的類來生成,並在運行時執行的方法 ,無需生成一個動態組件和 動態類型包含的方法。當回收DynamicMethod對象 時,由即時(JIT)編譯器創建的可執行代碼將被回收。動態方法是生成 並執行少量代碼的最有效方法。 我有以下代碼: Type returnType = typeof(string); Type[] argTypes = { typeo