0

抱歉又打扰各位了。

我将在服务器上使用 WCF 服务。该服务是由外部创建的。如果我在浏览器中查看它,那很好。请看下图。

服务。

为了使用它,我添加了服务引用。使用 urlhttp://wsvc01/BOERPI/BOERPI.svc 然后我通过代码实例化代理。

BOERPI.PostPhoneCallResponse client = null;
client = new BOERPI.PostPhoneCallResponse();
double x = client.ActualCallCharge; // suppose to get a proper value but not

该服务的一些代码是:

[ServiceContract]
public interface iBOERPI
{
    [OperationContract]
    PostPhoneCallResponse PostPhoneCall(PostPhoneCallRequest objCDRRequest);
[DataContract]
public class PostPhoneCallResponse
{
    [DataMember]
    public double ActualCallCharge = -1.0;

我假设服务代码是 100% 正确的,当我使用服务时有什么问题吗?

当我右键单击 PostPhoneCallResponse 的定义时,它是:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="PostPhoneCallResponse", Namespace="http://schemas.datacontract.org/2004/07/nsBOERPI")]
[System.SerializableAttribute()]
public partial class PostPhoneCallResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

    [System.NonSerializedAttribute()]
    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

    [System.Runtime.Serialization.OptionalFieldAttribute()]
    private double ActualCallChargeField;

谢谢。

4

1 回答 1

1

client = new BOERPI.PostPhoneCallResponse();您正在尝试使用您的DataContract此处而不是服务客户端。

在服务参考下检查您在客户端应用程序中使用的服务名称并使用它:

例如。

在此处输入图像描述

using(var client = new BingMapsGeocodeService()) // This should be your service client name
{

}

更新:

使用请求和响应对象发送和接收消息:

您需要根据您的操作显示创建一个请求对象:

var request = new PostPhoneCallRequest(){ // populate all your properties you need to send to the service};

var client = new BOERPI.MyClient(); // Instantiate your client with the name you have given for your service client.

PostPhoneCallResponse response = client.PostPhoneCall(request); // You are sending your request and getting a response as PostPhoneCallResponse object
于 2013-02-20T21:54:28.257 回答