-2

Visual Studio 2010 でデモ WCF Web サービスを作成しようとしました。サービス参照を正常に追加しましたが、クライアントにはまだ何か問題があります。サービスで関数を呼び出そうとすると、エラーが発生します。

これが私のコードです:

namespace BankAccount
{   
    [ServiceContract]
    public interface IUserServices
    {
        [OperationContract]
        bool addNewUser(User user);
    }
}

namespace BankAccount
{   
    public class UserServices : IUserServices
    {
        public bool addNewUser(User user)
        {
            SqlConnection conn = null;
            SqlCommand cmd = null;
            try
            {
                String sql = "insert into user(username,password,isActive) values(@username,@password,@isActive)";
                conn = Connection.getConnection();
                conn.Open();
                cmd = new SqlCommand(sql, conn);
                cmd.Parameters.Add(new SqlParameter("@username", user.getUsername()));
                cmd.Parameters.Add(new SqlParameter("@password", user.getPassword()));
                cmd.Parameters.Add(new SqlParameter("@password", user.getActive()));
            }
            catch (SqlException ex)
            {
                return false;
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
            return true;
        }
    }
}

//ユーザーオブジェクト

public class User
    {
        private int Id;
        private String username;
        private String password;
        private Boolean isActive;

        public User()
        {

        }

        public int getId()
        {
            return this.Id;
        }

        public void setId(int id)
        {
            this.Id = id;
        }

        public String getUsername()
        {
            return this.username;
        }

        public void setUsername(String username)
        {
            this.username = username;
        }

        public String getPassword()
        {
            return this.password;
        }

        public void setPassword(String password)
        {
            this.password = password;
        }

        public Boolean getActive()
        {
            return this.isActive;
        }

        public void setActive(Boolean isActive)
        {
            this.isActive = isActive;
        }
    }

クライアントサイト

using System.Web.UI.WebControls;
using BankClient.ServicesForUser;

namespace BankClient.userclient
{
    public partial class usersaving : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            UserServicesClient client = new UserServicesClient();
            //User on client project
            User user = new User();
            user.setUsername(txtusername.Text);
            user.setPassword(txtpassword.Text);
            user.setActive(true);

            bool result = client.addNewUser(user);
        }
    }
}

次の行でエラーが発生します。

client.addNewUser(user)

エラー:

the best overloaded method match for 'Bank.Client.ServicesName.UserServicesClient.addNewUser(Bank.Client.ServicesName.User) has some invalid arguments

問題が何であるかを知っている人はいますか?

4

1 に答える 1

3

サービスの作成後にユーザー オブジェクトを変更しました。クライアントでサービス コントラクトを再生成します。

間違ったユーザー オブジェクトを使用しているようです:

        Bank.Client.ServicesName.User user = new Bank.Client.ServicesName.User();
        user.Username = txtusername.Text;
        user.Password = txtpassword.Text;
        user.Active = true;

        bool result = client.addNewUser(user);
于 2013-10-28T11:40:46.377 に答える