我正在创建一个 wcf 自托管服务。我正在使用 UriTemplate 类来自定义方法的 url。代码片段如下
public interface ISelfService
{
[WebInvoke(Method = "POST", UriTemplate = "ack/{errorcode}/{uniquefileid}")]
[OperationContract]
void Ack(ErrorCode errorcode, string uniquefileid);
[WebInvoke(Method = "POST", UriTemplate = "filechanged/{metainfo}")]
[OperationContract]
void FileChanged(MetaInformation metainfo);
}
每当我运行这个程序时,我都会收到以下错误
合约“ISelfHostService”中的操作“FileChanged”有一个名为“metainfo”的“Natash.Common.MetaInformation”类型的查询变量,但“Natash.Common.MetaInformation”类型不能被“QueryStringConverter”转换。UriTemplate 查询值的变量必须具有可由“QueryStringConverter”转换的类型
谁能告诉我为什么会这样?
而且,我没有对 web.config 文件进行任何修改。我需要在那里进行任何修改吗?
MetaInformation 定义如下
[DataContract]
public struct MetaInformation
{
[DataMember]
public string Author { get; set; }
[DataMember]
public string tags { get; set; }
[DataMember]
public string categories { get; set; }
[DataMember]
public string description { get; set; }
}