현재 WCF 서비스와 클라이언트를 사용하고 있습니다. 어제까지 서비스가 완벽하게 작동했습니다. 나는 비동기와 마찬가지로 메소드를 정상적으로 호출 할 수있다. 하지만 다음 : 인터페이스와 서비스 클래스에 몇 가지 새로운 메소드를 추가했습니다. 그런 다음 svcutil.exe를 사용하여 클라이언트의 Service.cs 및 output.config를 생성했습니다. 이제 비동기 메서드는 반환 형식을 반환하지 않지만 일부는 "작업 < [MethodName] Result>"형식을 반환합니다.WCF 비동기 메서드 호출이 응답 개체를 반환합니다.
이public interface IService{
[OperationContract]
string GetData(int value);
[OperationContract]
LoginResultSet TryUserLogin(int clientID, string inputValue);
[OperationContract]
LoginResultSet TryClientLogin(string computerName);
[OperationContract]
bool IsClientLoggedIn(int clientID);
[OperationContract]
LoginResultSet TryClientLogout(int clientID);
[OperationContract]
LoginResultSet TryUserLogout(int clientID, UserClass user);
[OperationContract]
DataTable GetTestJU(int index);
[OperationContract]
DataTable GetJUHistory(UserClass user, int maxCount);
[OperationContract]
DataTable GetJU(UserClass user, string inputValue);}
문제는 로그인 이미 시작 :
이처럼 내 IService.cs 보이는 방법이다. 내 생성 Service.cs의 이전 버전에서 TryUserLogin 및 TryUserLoginAsync 방법은 다음과 같이 보았다 : 완벽하게하는 작업했다
public LoginResultSet TryUserLogin(int ClientID, string InputValue)
{
return base.Channel.TryUserLogin(ClientID, InputValue);
}
public System.Threading.Tasks.Task<LoginResultSet> TryUserLoginAsync(int ClientID, string InputValue)
{
return base.Channel.TryUserLoginAsync(ClientID, InputValue);
}
.
그러나 새로운 Service.cs에서
난이 얻을 :[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
TryUserLoginResponse IService.TryUserLogin(TryUserLoginRequest request)
{
return base.Channel.TryUserLogin(request);
}
public LoginResultSet TryUserLogin(int clientID, string inputValue)
{
TryUserLoginRequest inValue = new TryUserLoginRequest();
inValue.clientID = clientID;
inValue.inputValue = inputValue;
TryUserLoginResponse retVal = ((IService)(this)).TryUserLogin(inValue);
return retVal.TryUserLoginResult;
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.Threading.Tasks.Task<TryUserLoginResponse> IService.TryUserLoginAsync(TryUserLoginRequest request)
{
return base.Channel.TryUserLoginAsync(request);
}
public System.Threading.Tasks.Task<TryUserLoginResponse> TryUserLoginAsync(int clientID, string inputValue)
{
TryUserLoginRequest inValue = new TryUserLoginRequest();
inValue.clientID = clientID;
inValue.inputValue = inputValue;
return ((IService)(this)).TryUserLoginAsync(inValue);
}
내가 잘못 뭘하는지 전혀 모른다. 새로운 Service.cs에서 메서드 앞에있는 특성은 항상 System.ComponentModel
네임 스페이스에서 발생하는 반면 이전 (작업 중) 특성에서는 System.Runtime.Serialization
네임 스페이스에서 해당 특성이 적음을 알게되었습니다.
정말 도움이되기를 바랍니다. 절망적입니다.