reflection.emit

    3熱度

    1回答

    我想以某種方式找到所有DynamicMethods我在目前情況下,考慮到我有以下方法和委託: public delegate double DivideInvoker(int a, int b); public DivideInvoker CreateInvoker() { Type[] methodArguments = { typeof(int),

    2熱度

    1回答

    我發現一個有趣的圖書館,converts expression trees to CodeDOM。我想知道是否有任何庫從表達式樹或CodeDOM對象轉換爲Reflection.Emit對象?

    1熱度

    1回答

    DynamicMethods允許您爲您創建的委託指定目標實例。但是,看起來這在您使用結構類型時不起作用。它會失敗並告訴我它不能綁定到這個方法。是因爲我的IL沒有解開目標實例的錯誤? 如果我在這裏改變A到一個類沒有問題。我究竟做錯了什麼? (也請不要建議致電Delegate.CreateDelegate綁定到GetType方法與目標實例) 下面是一個簡單的攝製: struct A { } ...

    2熱度

    1回答

    這裏是(非常簡化的)例子: public abstract class BaseClass<T> where T : BaseClass<T> { public static SomeOtherClass MyStaticField = new SomeOtherClass(typeof(BaseClass<T>)); } public sealed class FinalCla

    1熱度

    2回答

    我想檢查一個布爾字段,如果它是假的。但我無法讓它工作。 所以我想推一個布爾字段到堆棧並調用Brtrue_S,這將翻轉控制是一個值爲真或不爲空。但它失敗了。 這段代碼工作正常,如果我只推一個int,比如一個0,到堆棧,爲什麼不是一個布爾值? 我已經嘗試了一些unbox_any,但是我知道如何做到這一點,並不是那麼好。 FieldBuilder fieldId = proxy.DefineField(

    5熱度

    2回答

    所需的MethodInfo和實例類型我有一個遞歸函數OpCodes.Callvirt emit : Map<string,LocalBuilder> -> exp -> unit其中il : ILGenerator是全球性的功能和exp是代表類型檢查解析的語言判別工會案例InstanceCall of exp * MethodInfo * exp list * Type和Type是代表表達式類型的

    3熱度

    1回答

    我試圖編寫一些在運行時生成類型的代碼。我有一個我需要實現的接口,但是這個約束給我帶來了一些困難。 正如在評論中已經注意到的,是的界面看起來像喜歡和無盡的遞歸,但不是。它編譯就好 界面類似於: TypeBuilder tb = mb.DefineType( "typename", TypeAttributes.Public,typeof(object),new[]{...}

    1熱度

    1回答

    我想從我的自定義屬性添加System.Activites.Presentation中的類。我試圖用emit(TypeBuilder, ModuleBuilder, AssemblyBuilder)來做到這一點。是否可以通過向其添加屬性來更改現有類型?或者如何告訴TypeBuilder,以便它使用現有的數據類型?或從一個給定的類型繼承? 謝謝。

    0熱度

    1回答

    我需要一些幫助,以獲取此錯誤消息。基本上,我正在開發一個使用C#.NET和NHibernate的動態報告類庫。 [Report(Guid="{D9DEB982-02A3-4700-868D-404E615F1DDA}", Title="Golf Course Report", Description= "Produces a list of golf courses by city")] [

    0熱度

    1回答

    爲了能夠在運行時操作屬性,我試圖構建一個通用包裝器,它將所有公共/非公共,靜態/實例屬性轉換爲PropertyGrid控件中可見的公共實例屬性。 以下代碼適用於公共設置者和獲取者(包括靜態和實例),但對於具有內部作用域的setters失敗。 任何幫助是極大的讚賞。 public static class PropertyWrapper<T> where T : class { publ