我有一个抽象类,它调用它的一个抽象方法,如下所示:
public abstract class VirtualAsset : ISerializable
{
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
SerializeAsset(info);
}
public abstract void SerializeAsset(SerializationInfo info);
}
问题是,由于我信任用户输入,恶意用户(或不知道自己在做什么的用户)极有可能尝试传入 VirtualAsset 的实例,而不是实现所需抽象函数的子类...事实上,当我故意这样做时,程序崩溃而没有错误。
我试过使用 try-catch 无济于事......有效处理这个问题的最佳方法是什么?每次调用可覆盖的方法时都必须检查 self.GetType() 吗?