DateTime缺少GetObjectData.还是我漏掉了什么?

本文关键字:掉了 什么 缺少 GetObjectData DateTime | 更新日期: 2023-09-27 18:10:09

据我所知,具体实现接口:)查看DateTime结构似乎实现了isserializable。假设实现:

void GetObjectData(SerializationInfo info, StreamingContext context);

我在DateTime的元数据上找不到这个实现。还:

DateTime.Now.GetObjectData(null,null);

似乎抛出编译时异常。我还没有检查ILSpy…

想法?

DateTime缺少GetObjectData.还是我漏掉了什么?

isserializable显式实现。你可以这样调用这个方法:

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

查看DateTime的源代码。它在实现ISerializable时使用显式接口实现,这意味着通过调用DateTime实例是不可见的。

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

请注意方法名以ISerializable为前缀。您需要将DateTime实例视为ISerializable实例来访问该方法。