Como omitir Obter apenas propriedades no serializer servicestack json?

Eu tenho um object que eu sou de-serializing usando o método ToJson() do namespace ServiceStack.Text.

Como omitir todas as propriedades somente GET durante a serialização? Existe algum atributo como [Ignore] ou algo com o qual eu possa decorar minhas propriedades, para que elas possam ser omitidas?

obrigado

Os serializadores de texto do ServiceStack seguem o comportamento do serializador DataContract do .NET, o que significa que você pode ignorar membros de dados usando o atributo [IgnoreDataMember]

 public class Poco { public int Id { get; set; } public string Name { get; set; } [IgnoreDataMember] public string IsIgnored { get; set; } } 

Uma alternativa opcional é decorar todas as propriedades que você deseja serializar com [DataMember] . As propriedades restantes não são serializadas, por exemplo:

 [DataContract] public class Poco { [DataMember] public int Id { get; set; } [DataMember] public string Name { get; set; } public string IsIgnored { get; set; } } 

Finalmente, há também uma opção não intrusiva que não requer atributos, por exemplo:

 JsConfig.ExcludePropertyNames = new [] { "IsIgnored" }; 

Especificando dinamicamente as propriedades que devem ser serializadas

Serializers do ServiceStack também suporta dinamicamente serialização de controle, fornecendo convencionalmente chamado ShouldSerialize({PropertyName}) methods para indicar se uma propriedade deve ser serializada ou não, por exemplo:

 public class Poco { public int Id { get; set; } public string Name { get; set; } public string IsIgnored { get; set; } public bool? ShouldSerialize(string fieldName) { return fieldName == "IsIgnored"; } } 

Mais exemplos em ConditionalSerializationTests.cs

Para membros anuláveis, você também pode defini-lo como nulo antes da serialização.

Isso é particularmente útil se você deseja criar um modelo de visualização única / api que é reutilizado para várias chamadas de API. O serviço pode tocá-lo antes de configurá-lo no object de resposta.

Exemplo:

  public SignInPostResponse Post(SignInPost request) { UserAuthentication auth = _userService.SignIn(request.Domain, true, request.Username, request.Password); // Map domain model ojbect to API model object. These classs are used with several API calls. var webAuth = Map(auth); // Exmaple: Clear a property that I don't want to return for this API call... for whatever reason. webAuth.AuthenticationType = null; var response = new SignInPostResponse { Results = webAuth }; return response; } 

Eu gostaria que houvesse uma maneira de controlar dinamicamente a serialização de todos os membros (incluindo não-anulável) em uma forma por ponto final.