2016-03-31 11 views
0

私はVB6でファイルの多くのプロパティを保持するクラスを持っています。 私はEmailerをC#コードに変換しました。 VB6ファイルクラスには、Emailerにとって有益な情報がたくさんあります。vb6プロパティクラスをC#クラスのコンストラクタに渡しましたか?

質問が発生しました: 私はVB6で持っているクラスを取得し、それを私のC#Emailerコンストラクタにプッシュする方法はありますか? これは可能ですか?

は、VB6のコードでは、私はCOM割り込み、 とのプロジェクトにDLLをリンクしているし、その後VB6のコードで私は..のような

Dim fileObj As New FileProperties 
    ...fill out the object... 

Dim emailObj As New Emailer(fileObj) 
emailObj.SendEmail() 

を何かを行うことができますが、どのようにC#がで受け入れるためにどのようなdataTypeと知っているだろうパラメータ?

答えて

1

COMにコンストラクタを公開することはできません。

理想的には、FilePropertiesクラスはC#コード内にあり、Emailerクラスと共にCOMを通じて公開されるべきです。あなたのemailerクラスは、パラメータなしコンストラクタで初期化されるFileProperties型のプロパティを公開します。

VB6で

あなたは

Dim emailObj As New Emailer 

をするでしょうし、その後使用してFilePropertiesに記入

emailObj.FileProperties.Prop1 = ""