il

    2熱度

    1回答

    我已將一個新類添加到我的庫中,該類將成爲公共記錄的API的一部分。底層數據結構是本地數組,但在首次生成本地數組時使用List<T>。 MSDN指示List<T>拋出ArgumentOutOfRangeException而不是IndexOutOfRangeException(可以在訪問本機陣列時拋出該錯誤)。 所以我打算更新我的功能一直是我記錄的API中拋出ArgumentOutOfRangeExc

    3熱度

    2回答

    我有一些代碼使用IlGenerator.Emit創建並使用datareader填充通用對象。它工作的很好,但是我需要擴展它來在數據庫字段名稱包含下劃線時填充簡單的子對象。 例如,名爲「Address_Line1」的數據庫字段應填充屬性Line1,該屬性是實體上Address屬性的屬性。在C#代碼,基本上... Entity.Address.Line1 = "value from reader";

    3熱度

    3回答

    在我看來,事件是CLR上的.NET操作。也就是說,IL中沒有'Event'概念和命令,編程語言(如C#)利用委託來實現事件(它們只是對象)的行爲,從CLR的角度查看沒有事件,只是一個常規的代表機制。 這是真的,還是CLR對事件有特殊待遇?

    3熱度

    1回答

    這以下C#代碼: short first = 1; short second = 2; bool eq1 = (first.Equals(second)); 的代碼轉換爲: IL_0001: ldc.i4.1 IL_0002: stloc.0 // first IL_0003: ldc.i4.2 IL_0004: stloc.1 // second IL_0005: ldl

    3熱度

    5回答

    我一直在尋找一種編譯指定目標平臺的.NET程序集的方法。 目標是讓IL和整個程序集編譯成獨立於.NET運行時的獨立可執行文件。 我讀過很多文章和評論,爲什麼它不能完成,但我很好奇 - 任何人都可以提出一些想法? 更新:微軟宣佈推出「.NET Native」預覽版。見here。 按照FAQ: 問:如何連接工作?框架代碼是否被編譯到應用程序中? 答:是的,框架代碼將被編譯到應用程序 現在聽起來不錯。不

    4熱度

    1回答

    我注意到我在MSIL中編寫的一些代碼以高速獲取對象的任意屬性並沒有獲得正確的DateTime屬性值。不管DateTime對象的實際值如何,它總是返回相同的值。年始終返回1,毫秒返回88等... 一些在LINQPad中精簡的代碼,演示了這一點。獲取mc.Inner.Age返回正確的值,mc.Inner.DateOfBirth返回適當的DateTime值,但試圖獲取mc.Inner.DateOfBir

    3熱度

    2回答

    我正在讀第二本書,但它仍然不明顯。 我的問題是: IL語言編譯的次數: a)每次從應用程序開始執行時開始。 b)一次,第一次執行後。

    3熱度

    1回答

    它可以以任何方式(IL黑客包括)到自動「替換」呼叫到一定構造,例如 public void Car(Color color) { this.Color = color; } 通過工廠方法,例如 public static Car Create(Color color) { return new Car(color); } 返回它的子類型的原始類型? 我想通過一個

    0熱度

    1回答

    假設我們已經通過Entity Framework 6.0從數據庫映射了存儲過程。我想通過它們的返回類型篩選存儲過程,然後使用返回類型通過WPF填充網格。 這裏是所涉及的查詢: AssemblyName assemblyName = new AssemblyName("CT_EntityDataModel"); Assembly asm = Assembly.Load(assemblyName);

    1熱度

    1回答

    給定一個實用程序方法,用於搜索支持您沒有Set訪問權的屬性的Field。 有沒有任何環境條件會導致這一失敗,一旦我有它在我的機器上工作? 無論您運行應用程序的條件如何,從GetILAsByteArray返回的IL總是與給定程序集一樣? public static class HackUtil { public static FieldInfo GetFieldBackingP