0

因此 DataContract 的 DataMember 中的“Name”属性可用于控制生成的序列化 json:

[DataContract(Name = "AuthenticationContract")]
public class AuthenticationContract
{
    [DataMember(Name = "first_name")]
    public string FirstName;

    [DataMember(Name = "last_name")]
    public string LastName;

}

结果是:

{"first_name":"frank","last_name":"rizzo"}


我希望 ServiceContract 上的 Name 属性会做类似的事情:

[ServiceContract(Name="nameapi")]
public class NameAuthenticationService : INameAuthenticationService    
{
    [OperationContract]
    public string GetName()....
}


所以,而不是这个

http://localhost:49531/NameAuthenticationService/GetName

...我可以用这个

http://localhost:49531/nameapi/GetName


这可能吗?

4

1 回答 1

1

不,ServiceContractAttribute.Name 控制<portType>您从服务发布的 WSDL 所公开的内容。您要做的是更改服务的基地址,您应该可以在服务的 .config 文件中设置它(如果您是自托管的,则可以手动设置)。请参阅http://msdn.microsoft.com/en-us/library/ms788982(v=VS.85).aspx

于 2012-08-03T17:07:41.773 回答