我有一个WCF Web服务,它使用文件路径作为参数来验证XML数据。但是,当我调用它时,它完全忽略了参数。
web服务:
namespace MyApp.Validation.WebServices
{
public class ValidateSurveyData : IValidateSurveyData
{
private ValidateSurveyDataResponse response = new ValidateSurveyDataResponse();
public ValidateSurveyDataResponse ValidateXMLSurveyData(string XMLFile)
{
//Validation Code
return response;
}
}
}
界面:
namespace MyApp.Validation.WebServices
{
[ServiceContract]
public interface IValidateSurveyData
{
[OperationContract]
ValidateSurveyDataResponse ValidateXMLSurveyData(string XMLFile);
}
[DataContract]
public class ValidateSurveyDataResponse
{
[DataMember]
[Description("XML Data Validation Errors")]
public List<SurveyValidationError> DataValidationErrors { get; set; }
public ValidateSurveyDataResponse()
{
DataValidationErrors = new List<SurveyValidationError>();
}
}
}
在测试客户端中:
当我调试代码时XMLFile
总是null
。无奈之下,我尝试了C:\MyFile.xml
,@C:\MyFile.xml
,@"C:\MyFile.xml"
,"C:\MyFile.xml"
作为参数,但我始终保持不变,XMLFile
为null
。我错过了什么?
更新
好的感觉有点尴尬!问题不在于我所传递的数据服务。C:\XmlFile.xml
提供null
参数,但C:\\XmlFile.xml
给出正确的结果。
答案 0 :(得分:0)
我认为你缺少ValidateSurveyDataResponse()
方法中的参数,签名应该是这样的
public ValidateSurveyDataResponse(string XMLFile)
答案 1 :(得分:0)
在界面中的ValidateXMLSurveyData
函数上方添加以下行。
[WebInvoke(Method = "POST", UriTemplate = "ValidateXMLSurveyData?value={XMLFile}")]
示例电话
http://localhost:5647/ValidateSurveyData.svc/ValidateXMLSurveyData?value="C:\MyFile.xml"