「一気に最後まで読んだ」本、教えて下さい!

.NET初心者です。

今VB.NETでVB6向けの自作COMクラスライブラリを作成しています。
自作クラスはStreamWriterクラスのラッパークラスとしてStreamWriterと継承関係にあります。

COMは引数なしのコンストラクターを一つ用意しなければなりませんが、
StreamWriterクラスは引数なしのコンストラクタを用意されていないため困っています。

自作クラス自身もFileクラスのラッパークラスで引数として使う必要があるため
継承関係を維持してVB6に公開する必要があります。

この問題をなんとか解決する手法って存在するのでしょうか?

ちなみにほかに考えた手法は下記です。
・プロパティーに StreamWriterのインスタンスを用いて継承関係なしであとでinitメソッドを呼び出す
  →Fileラッパークラスの引数でStreamWriter型に代入出来ないため不可
・StreamWriterを引数に取るメソッドの実装をあきらめる
  →極力したくない
・StreamWriterラッパークラスの引数なしコンストラクタでStreamWriterクラスの引数ありコンストラクタを呼ぶ
  →後でファイルのパスを指定する方法が見つからないため不可

他言語はそれなりにやってきたのでコンストラクターをあとで呼び出すなんて出来ないのはなんとなくわかるのですが何せ.NETを触り始めたのが最近なのでよろしくお願い致します。

A 回答 (1件)

当然ながら,できないです。



StreamWriterではなくTextWriterを継承したクラスにし,
内部でStreamWriterを持つ構造にはできませんか。
    • good
    • 0
この回答へのお礼

なるほど、その手がありましたね。
StreamWriterラッパークラス内部でStreamWriterを持たせて、
StreamWriterを引数とするのコンストラクタを用意し、内部インスタンスに代入するということですね。

ありがとうございました。無事解決できました。

お礼日時:2012/12/17 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報