2011-01-27 39 views

回答

1

您可以使用反射和(可選)動態IL生成。

例如,一旦你知道的類型(即有System.Type實例),您可以枚舉所有字段(type.GetFields()返回FieldInfo對象的列表),然後用GetValue方法來獲得字段的值。只要安全信任級別檢查通過,它就可以與私有字段一起使用。

這不是非常快,所以你可能想要預編譯字段訪問代碼(只有在分析器告訴你!)。在這種情況下,您可以使用System.Reflection.EmitDynamicMethod設施。 (你可以在Google和MSDN上找到教程;我發現編譯一些功能可以幫助我完成與C#/ F#的工作,然後檢查Reflector/ildasm中的MSIL輸出)。

+0

在編譯和運行時發佈/定製/操作MSIL代碼的任何好書嗎? – geeko 2011-01-27 16:22:23

1

其實這很容易。如果您只想讀取二進制數據(不是序列化的對象,但是原始的二進制數據),則可以使用BinaryReader

相關問題