私は3つのプロジェクトで解決策を持っています:
- クライアント
- モデル
- WCF サービス
Models プロジェクトには、以下のようなデータベース テーブルを参照する POCO クラスがあります。
[DataContract]
[Table("users")]
public class User
{
public User()
{
}
[DataMember]
[Key, Column("userid", TypeName = "int")]
public Int32 UserId { get; set; }
[DataMember]
[Column("username", TypeName = "varchar")]
public String UserName { get; set; }
WCF サービス プロジェクトには、以下のようにメソッドからモデルを返すためにモデルへの参照があります。
public User ValidateUser(string organization, string userName, string password)
{
Model.Poco.User user = new Model.Poco.User();
user.UserId = 1;
user.BoardMember = true;
user.Email = "test@yahoo.com";
user.FirstTimeLogin = false;
user.IsActive = true;
user.Notes = "notes";
user.Password = "xxxxxx";
user.UserName = "user1";
return user;
}
これで、私のクライアントには WCF サービスへのサービス参照があり、それを呼び出すコードは次のようになります。
private void button1_Click(object sender, EventArgs e)
{
WCFService.Service1Client client = new WCFService.Service1Client();
var user = client.ValidateUser("test", "test", "test");
}
このように問題なく動作しています。「ユーザー」変数をナビゲートすると、WCF サービスのすべてのオブジェクト プロパティがありますが、私がやりたいことは次のとおりです。
Model.Poco.User user = client.ValidateUser("test", "test", "test");
しかし、これを行うと、WCFService.User から Model.Poco.User に変換できないというエラーが表示されます。
シリアル化されたオブジェクトをネイティブ オブジェクトに変換する方法についての手がかり。クライアントと WCF サービスの両方で同じオブジェクトを使用していることに注意してください。これは、両方で * Modelsプロジェクトを参照しているためです。*
事前にどんな助けにも感謝します!!