次のように、抽象メソッドの1つを呼び出す抽象クラスがあります。
public abstract class VirtualAsset : ISerializable
{
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
SerializeAsset(info);
}
public abstract void SerializeAsset(SerializationInfo info);
}
問題は、私がユーザー入力を信頼しているため、悪意のあるユーザー(または自分が何をしているのかわからないユーザー)が、仮想資産のインスタンスではなく、仮想資産のインスタンスを渡そうとする可能性が高いことです。必要な抽象関数を実装するサブクラス...実際、これを意図的に実行すると、プログラムはエラーなしでクラッシュします。
try-catchを使用してみましたが無駄になりました...この問題を効果的に処理するための最良の方法は何ですか?オーバーライド可能なメソッドを呼び出すたびにself.GetType()をチェックする必要がありますか?