2014-06-24 48 views
2

據我記得具體實現接口:) 看着DateTime結構似乎實現ISerializable。這假設實現:DateTime缺少GetObjectData。或者我錯過了什麼?

void GetObjectData(SerializationInfo info, StreamingContext context); 

我無法真正找到此元數據的DateTime實現。 另外:

DateTime.Now.GetObjectData(null,null); 

似乎拋出編譯時異常。我還沒有檢查ILSpy ...

想法?

回答

3

ISerializable是explicity implemented。你可以調用這樣的方法:

ISerializable now = DateTime.Now; 
now.GetObjectData(null, new StreamingContext()); 
//don't send null for the first parameter 
+0

爲什麼我在元數據上看不到? –

+0

@AmirKatz來自MSDN鏈接:當成員被明確實現時,它不能通過類實例訪問,而只能通過接口的實例訪問。 –

+0

真棒..我不知道顯式是不可見的。你每天學習新東西:) –

1

檢查出DateTime的來源。它在實現ISerializable時使用顯式接口實現,這意味着通過調用DateTime實例不可見。

void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { 
     .... 
}   

注意方法名的前綴是ISerializable。您需要將DateTime實例視爲ISerializable實例來訪問該方法。

+0

感謝您的鏈接!很有用! –

相關問題