콘솔 응용 프로그램으로 wcf 서비스를 사용하고 있습니다. 계정 번호를 기반으로 계정 정보를 검색하고 싶습니다. 계정 번호를 입력하면 오류없이 메소드를 실행할 수 있지만 콘솔 애플리케이션에서 다음 오류가 발생합니다.콘솔 응용 프로그램에서 값 ''을 (를) 형식으로 구문 분석 할 수 없습니다.
: '메시지를 deserialize하려고 할 때 포맷터가 예외를 throw했습니다. 매개 변수 http://tempuri.org/:AccountBalanceCheekResult을 역 직렬화하려고 시도하는 동안 오류가 발생했습니다. InnerException 메시지가 'System.Boolean 형식의 개체를 deserialize하는 동안 오류가 발생했습니다. ''값을 'Boolean'유형으로 구문 분석 할 수 없습니다. ' 자세한 내용은 InnerException을 참조하십시오. '
다음은 클래스입니다.
[DataContract]
public class AccountBalanceRequest : Current_Account_Details
{
string account_number;
[DataMember]
public string Account_Number
{
get { return account_number; }
set { account_number = value; }
}
}
}
여기 구현과 나는 ADO.NET 코드에서 어떤 오류도 발견하지 못했습니다.
public AccountBalanceRequest AccountBalanceCheek(AccountBalanceRequest accountNumber)
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
var cmd = new SqlCommand("SELECT * FROM Current_Account_Details WHERE Account_Number = '" + accountNumber.Account_Number + "'", conn);
cmd.CommandType = CommandType.Text;
var reader = cmd.ExecuteReader();
//read the result of the execute command.
while (reader.Read())
{
//assuming that your property is the same as your table schema. refer to your table schema Current_Account_Details
accountNumber.Account_Number = reader["Account_Number"].ToString();
accountNumber.Account_Creation_Date = reader["Account_Creation_Date"].ToString();
accountNumber.Account_Type = reader["Account_Type"].ToString();
accountNumber.Branch_Sort_Code = reader["Branch_Sort_Code"].ToString();
accountNumber.Account_Fees = reader["Account_Fees"].ToString();
accountNumber.Account_Balance = reader["Account_Balance"].ToString();
accountNumber.Over_Draft_Limit = reader["Over_Draft_Limit"].ToString();
}
return accountNumber;
}
}
다음은 콘솔 창 코드입니다.
public static void Balance()
{
MyService.HalifaxCurrentAccountServiceClient currentAccount = new MyService.HalifaxCurrentAccountServiceClient("NetTcpBinding_IHalifaxCurrentAccountService");
MyService.AccountBalanceRequest cs = new MyService.AccountBalanceRequest();
string AccountNumber;
Console.WriteLine("\nEnter your Account Number--------:");
AccountNumber = Console.ReadLine();
cs.Account_Number = AccountNumber;
// MyService.AccountBalanceRequest cs1 = currentAccount.AccountBalanceCheek(AccountNumber);
if (currentAccount.AccountBalanceCheek(cs))**//Error on this line**
{
Console.WriteLine("Your Account Number is :" + cs.Account_Number);
Console.WriteLine("Your Account Type :" + cs.Account_Balance);
Console.WriteLine("Your Account Account Fee :" + cs.Account_Fee);
Console.WriteLine("Your Account Balance:" + cs.Account_Balance);
Console.WriteLine("Your Account Over Draft Limit :" + cs.Over_Draft_Limit);
Console.Write("--------------------------");
Console.ReadLine();
//Console.Clear();
}
}
다음은 애플리케이션을 실행할 때 나타나는 스크린 샷입니다. 코드에서
에
에서있어서의 서명을 변경. 호출하는 메서드는'bool'을 반환하지 않지만'bool'을 반환하는 것처럼 검사하고 있습니다. – CodingYoshi