이 내 프로그램 (클라이언트) 측과 거래 수익을 얻기 위해 시도 할 수있는 기능입니다 것은 다음과 같습니다WCF 서비스 - 클래스를 반환하려고
: 클라이언트private void MakeTransition_Click(object sender, RoutedEventArgs e) {
//string CardHoldName = _CardHoldName.Text;
//string CardBrand = _CardBrand.Text;
//string Password = _Password.Text;
int CardNumber = int.Parse(_CardNumber.Text);
//int ExpirationDateM = int.Parse(_ExpirationDateM.Text);
//int ExperiationDateY = int.Parse(_ExpirationDate_Y.Text);
int TransationValue = int.Parse(_TransitionValue.Text);
Transition t = new Transition();
t.CardNumber = CardNumber;
t.TransitionValue = TransationValue;
HttpClient client = new HttpClient();
string serializedContent = JsonConvert.SerializeObject(t);
StringContent content = new StringContent(serializedContent);
/*Transaction teste = JsonConvert.DeserializeObject<Transaction>(content.ReadAsStringAsync().Result);
MessageBox.Show(teste.TransitionValue + "");
MessageBox.Show(content.ReadAsStringAsync().Result);*/
HttpResponseMessage response = client.PostAsync("http://localhost:8733/Design_Time_Addresses/HireMePleasee_Server/Service1/mex", content).Result;
MessageBox.Show(response.Content.ReadAsStringAsync().Result);
TransactionResponse r = JsonConvert.DeserializeObject<TransactionResponse>(response.Content.ReadAsStringAsync().Result);
if (r.Status == "Approved") {
MessageBox.Show("APPROVED!!!");
} else {
MessageBox.Show("YOU GET NOTHING! GOOD DAY, SIR!");
}
}
}
내 트랜잭션 클래스 클라이언트에서
[DataContract]
public class Transaction{
[DataMember]
public int CardNumber { get ; set; }
[DataMember]
public int TransitionValue { get; set; }
}
내 TransactionResponse 클래스 :
[DataContract]
public class TransactionResponse {
[DataMember]
public string Status { get; set; }
}
@@@@@@@@@@@
public class Service1 : IService1 {
public Transaction checkTransaction(Transaction t) {
if (t.TransactionValue > 1500) {
t.Status = "Denied";
} else {
t.Status = "Approved";
}
return t;
}
}
그리고의 ServiceContract :
이 내 구현 된 기능을 가진 서비스입니다
[ServiceContract]
public interface IService1 {
[OperationContract]
Transaction checkTransaction(Transaction t);
}
[DataContract]
public class Transaction {
[DataMember]
public int CardNumber { get; set; }
[DataMember]
public int ValidationDate { get; set; }
[DataMember]
public int TransactionValue { get; set; }
[DataMember]
public string Status { get; set; }
}
#
어떻게 든 "MessageBox.Show (. response.Content.ReadAsStringAsync() 결과) " 내 서버 측이 클라이언트로부터 제공된 데이터를 처리하지 않고 전혀 반환하지 않는다는 것을 의미하는 아무것도 인쇄하지 않습니다. 나는 정말로 도움이되는 것을 찾을 수 없기 때문에 나는 여기에 커뮤니티를 요구하고 있습니다. 내가 도대체 뭘 잘못하고있는 겁니까??? :
'mex' 엔드 포인트는 잠재적 인 클라이언트에게 서비스의 구조를 알려주는 메타 데이터입니다. _ _ 실제 엔드 포인트를 사용하여 실제로 서비스를 호출해야합니다. – stuartd
내 WCF 기술은 이미 녹슬었지만 '/ mex' (메타 데이터 교환) 엔드 포인트에 게시하는 중입니다. 호출이 실제로 실행되는지 확인하기 위해 서버 측 메소드에 중단 점을 설정 했습니까? –
@BernhardKoenig 아니, 아니에요. 끝점에 대한 몇 가지 변경을 시도해 보겠습니다. –