サブクラスのセット(productorder、specialorder、partsorderなど)を持つ基本クラス(注文)があります。
これらのサブクラスの一部のみが、単一のメソッド宣言 (オブジェクト getcustdetails()) を持つ特定のインターフェイス (ITrackingCustomer) を実装します。
私のソリューションの一部として、すべての注文は中央の場所で処理されます。つまり、すべてのクラッド メソッドは中央のレイヤーを通過します。この中央レイヤー内で、次のことを行います。
注文のタイプが ITrackingCustomer の場合
次に、メソッド getcustdetails() を呼び出します
次のコードを使用してこれを機能させています。
if (typeof(ITrackingCustomer).IsAssignableFrom(Order.GetType()))
{
MethodInfo theMethod = Order.GetType().GetMethod("getcustdetails");
object y = theMethod.Invoke(Order, null);
}
isassignablefrom を使用した最初の部分には満足していますが、2 番目の部分 (つまり、invoke を使用したリフレクション) では、パフォーマンスをあまり重視しない方法を使用したいと考えています。
私の質問は:
呼び出しコマンドを使用するとコストがかかることを読んだので、これを行うより効率的な方法はありますか。