У меня есть сервис, который я хотел бы использовать свойство моего клиента:Используя свойство в WCF
[ServiceContract]
public interface IMyAPI
{
string UserName { [OperationContract] get; [OperationContract] set; }
string Password { [OperationContract] get; [OperationContract] set; }
[OperationContract]
bool StockQuery(string partNo);
}
public class MyAPI : IMyAPI
{
public string UserName { get; set; }
public string Password { get; set; }
private void CheckSecurity()
{
if(this.UserName != "test" && this.Password != "123")
{
throw new UnauthorizedAccessException("Unauthorised");
}
}
public bool StockQuery(string partNo)
{
this.CheckSecurity();
if(partNo == "123456")
{
return true;
}
return false;
}
}
Тогда на моем клиенте я:
Testing.MyAPIClient client = new Testing.MyAPIClient();
client.set_UserName("test");
client.set_Password("123");
Console.WriteLine(client.StockQuery("123456"));
Console.ReadLine();
Проблема в том, когда Я отлаживаю, UserName
и Password
не устанавливаются, они равны нулю.
Почему 'set_UserName' и' set_Password'? Является ли код клиента еще на C#, потому что обычно вы просто выполняете 'client.UserName =" test "'. – CodingGorilla
@CodingGorilla Это потому, что 'OperationContract' включен в getter и setter явно, поэтому он предоставляет метод вызова метода –
. Я сомневаюсь, что вы можете« вызвать »свойство таким образом ... знать о сеансовом режиме - Это может стать грязным, как черт! –