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 に答える