2

MailMessage をパラメーターとして WCF Web サービスに渡したいと考えています。問題は、MailMessage がシリアライズ可能ではなく、MailAddress などの多くのプロパティもシリアライズ可能でないことです。シリアル化するにはどうすればよいですか?

ラッパー クラスのプロパティとして使用してシリアル化するためのチュートリアルを見たことがありますが、MailMessage プロパティがクライアント側に表示されないため (シリアル化できないため)、WCF 経由で送信するのに役立ちません。 . 基本的な文字列値 (to、from、body) だけを送信したくありません。MailMessage 全体とそのすべてのプロパティを送信したいと考えています。これどうやってするの?

アップデート:

私は、Web サービスを使用して MailMessage クラスをシリアル化する価値はないと判断しました。シリアル化クラスは機能しましたが、そのメソッド/コンストラクターの多くは WCF クライアント/コンシューマーでは利用できませんでした。そのため、クライアント側で通常のクラス (MailMessage など) からシリアル化されたクラス (SerializedMailMessage など) に変換するコードを書き直す必要がありました。

私は、EmailHelper を使用してクラス ライブラリを作成し、呼び出し元アプリの構成を使用して SMTP 設定を決定することにしました。

SmtpSection smtpConfig = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
if (smtpConfig != null) {
    // extract values to your SmtpClient
}
4

1 に答える 1

5

MailMessageクラスのSerializeableバージョンを作成し、そのプロパティ(MailAddress、Attachment ...など)ごとにSerializeableクラスを作成する必要がありました。

幸いなことに、私はこの無料のオープンソースコード(氷を燃やすことによる複合C1貢献)を見つけました。

ソースコード

ライセンスの詳細

于 2012-09-25T20:31:39.387 に答える