2012-02-19 11 views
0

私はWCFサービスのSQLメンバーシッププロバイダを実装しました。このサービスは、WPFクライアントによってインターネット経由でアクセスされます。私はサービスをgetUser()ユーザーが返す必要があります。 another threadには、クラスにSecurityAttributeがあり、XmlSerializerでそれをシリアル化できないため、これを行うことができないことが読み取られているため、そのメソッドでMembershipUserを返すことはできますか?WCFサービスからMembershipUserを返す

編集: また、このタイプをクライアントに返すことも安全です。誤用の可能性はありますか?

答えて

2

私は、そのタイプをシリアル化できるかどうかに関する具体的な答えを100%確信しているわけではありませんが、試してみてください。エラーが発生した場合は、返す必要があるすべての情報を含むプロキシタイプを作成します。

+0

私はそれを行うことができますが、私のサービスとクライアントはすでにサイズが大きいので、コードに多くの変更があります。 – Aaron

+0

どうしたらできますか?メンバーシッププロバイダーを今開発している場合、依存関係がどのように大きく変化して変更に煩わされる可能性がありますか?一般的に言えば、変更されたコードを変更する必要があるようなクロスカッティングの問題を制限するように努力する必要があります。 –

+0

私はデフォルトメンバーシッププロバイダを使用し、それを使用しました。私はこのように1ヶ月間働いていますが、これは私の最初のWCFプロジェクトなので、フレームワークの可能性を知らなかったので、私は計画を立てていませんでした。 – Aaron

1

それがうまくいくかどうかはわかりませんが、最悪の場合、DTOオブジェクト(MyMembershipUserと言うことができます)を作成し、MembershipUserからMyMembershipUserへのマッピングを作成できます。 これはかなり簡単です。

/// <summary> 
    /// Maps MembershipUser entity to MyMembershipUser business object. 
    /// </summary> 
    /// <param name="entity">A MembershipUser entity.</param> 
    /// <returns>A product business object.</returns> 
    internal static MyMembershipUser Map(MembershipUser entity) 
    { 
     return new MyMembershipUser 
     { 
      Id = entity.Id, 
      Name= entity.Name, 
     }; 
    } 
関連する問題