【发布时间】:2016-09-26 03:29:22
【问题描述】:
我已经声明了一个名为 Authentication 的方法,这个方法接受一个 AuthenticationRequest 作为输入。所以这就是我的问题开始的地方。我已将 AuthenicationRequest 上的用户名和密码变量设置为私有,因此我使用重载的构造函数来设置它们并使用 getter 来返回它们。在我的客户端上,我试图调用Authentication(new AuthenticationRequest("","")) 但是无法识别重载的构造函数。我正在使用 C# WCF 服务。我正在使用 Visual Studio 从网址生成客户端代码。
下面我将发布我的课程的副本。我对 WCF 知之甚少,但据我了解,您在某些事情上需要 [属性]。
身份验证请求
using Classes.General;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Web;
namespace Classes.Authentication
{
[DataContract]
public class AuthenicationRequest : Status
{
[DataMember]
private String Email, Password;
public AuthenicationRequest(String Email, String Password)
{
this.Email = Email;
this.Password = Password;
}
public void doWork()
{
}
public String GetEmail()
{
return this.Email;
}
public String GetPassword()
{
return this.Password;
}
}
}
Authentication.svc.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using MySql.Data.MySqlClient;
using Classes.General;
using Classes.Users;
using Classes.Authentication;
namespace WebApi_Nepp_Studios.Endpoints
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Authentication" in code, svc and config file together.
// NOTE: In order to launch WCF Test Client for testing this service, please select Authentication.svc or Authenication.svc.cs at the Solution Explorer and start debugging.
[ServiceContract]
public class Authentication
{
//Declare the MySQL variable for global databse operations
MySqlConnection conn = new MySqlConnection(Properties.Resources.Cs);
MySqlCommand cmd;
MySqlDataReader reader;
[OperationContract]
public AuthenicationResponse Authenicate(AuthenicationRequest input)
{
//Blah blah blah
}
}
}
【问题讨论】:
-
我会鼓励你看看这个答案stackoverflow.com/questions/6316118/…
-
好的,这回答了我的问题,谢谢。不过,我现在遇到了另一个问题。在客户端看不到我的 DoWork 方法。
-
贝利,我正在输入一个更全面的回复,应该也有助于解决这个问题。