私はSpreadsheetGearというライブラリを使用しています。これで、IWorkbookを返すメソッドSpreadsheetGear.Factory.GetWorkbook()メソッドで初期化する "IWorkbook"オブジェクトで作業します。既知のインターフェイスを実装する未知のクラスの特定のインスタンスに拡張メソッドを追加します。
私は
にしたいので、私は
IClientWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook;
workbook.ChangeClientName("NewName");
ような何かを行うことができますし、どこかChangeClientNameメソッドを定義にインターフェイスを実装し、拡張メソッドを記述し、例えば私は
public partial interface IClientWorkbook : IWorkbook
を定義
を導き出しますそれ以外の場合は、IClientWorkbook以外のIWorkbookでは利用できません。
GetWorkbook()メソッドが返す実際のクラスが表示されないため、これにどう対処するかわかりません。うまくいけば質問が理にかなっています。あなたがオブジェクトによって実装されるようにしたい
元のマークダウンをどのように変更したかを確認してください。「
」を使用しないで、markdownを使用すると、改行時に改行が「
」となります。 –
また、**派生する*インタフェースの代わりに**インタフェースを実装します。 –
'GetWorkbook'が' IWorkbook'を返した場合、それをより派生した 'IClientWorkbook'に割り当てることはできません。代わりに 'IWorkbook'で拡張メソッドを作成したくないだけですか? – juharr