是否有可能編寫一個C#程序集,在加載時將一個方法從另一個程序集註入到類中?如果是的話,注入的方法是否可以使用DLR的語言,如IronPython?C#猴子補丁 - 有可能嗎?
namespace IronPython.Runtime
{
public class Bytes : IList<byte>, ICodeFormattable, IExpressionSerializable
{
internal byte[] _bytes;
//I WANT TO INJECT THIS METHOD
public byte[] getbytes()
{
return _bytes;
}
}
}
我需要該方法,並且我想避免重新編譯IronPython(如果可能)。
這對我的需求來說太慢了。我必須構建數以百萬計的ctypes.Structs。我想我找到了一個解決方案,使用擴展方法和GetBoundMethod來注入我需要的東西。另一種解決方案是使用文件對象讀/寫方法,它使用byte []而不是Bytes(這將是安全的)。問題是我無法將從f.read()讀取的文件傳遞給在使用byte []的C#程序集中實現的方法,因爲它實際上會接收一個字符串。目前我需要迭代每個字符並從中手動構建一個字節[]。我有千兆字節來處理。 – Meh 2010-05-18 17:30:54
我不是C#專家,它是否允許對底層存儲進行只讀訪問?類似於const void *。 – Meh 2010-05-18 17:37:11
是的,有ReadOnlyCollection。我不知道它是否複製了基礎數據,儘管(我不希望)。 –
2010-05-18 21:04:52