0

オブジェクトとそれが拡張する基本クラスを含むバイナリを使用しています。オブジェクトのインスタンスを作成したいのですが、そのために独自の基本クラスの実装を使用します。どのメソッドを拡張する必要があるかを知るために、基本クラスを見ることができます。

問題は、基本クラスが、ネットワーク接続を想定してネットワーク ストリームにデータを書き込む「WriteFeed」というメソッドを実装していることです。私の実装を使用して、代わりに WriteFeed がデータをコンソールにダンプできるようにしたいと考えています。

既存のバイナリを変更することはできません。それを使用してインスタンス化する方法だけです。

4

1 に答える 1

0

私の唯一の提案は、複合アプローチを使用することです。これがあなたのニーズを満たすかどうか、または可視性へのアクセス権があるかどうかはわかりませんが、うまくいくかもしれません.

public class SomeBaseClassInSomeBinary
{
   protected virtual void Method1(...) {}
   protected virtual void WriteFeed (...) {}
} 

public class SomeClassInSomeBinary: SomeBaseClassInSomeBinary
{
   protected override void Method1(...) { base.Method1(...); }
   protected override void WriteFeed (...) { base.WriteFeed (...); }
} 

// **** your code
public class MyCode: SomeBaseClassInSomeBinary
{
     private SomeClassInSomeBinary Composite = new SomeClassInSomeBinary();

     protected override void Method1(...) { Composite.Method1(...); }
     protected override void WriteFeed (...) { your implementation }
}

}

代わりにオブジェクトを使用するだけです。

お役に立てれば。

于 2013-04-09T01:18:00.563 に答える