TransWikia.com

Como setar valores únicos aceitáveis para uma propriedade Enum em uma classe Serializable?

Stack Overflow em Português Asked by NFe on September 29, 2020

Dado uma enum como exemplo:

public enum IcmsCst
{
    [XmlEnum("00")] Cst00,
    [XmlEnum("10")] Cst10,
    [XmlEnum("20")] Cst20,
    ...
}

Existe uma forma de anotação para que eu pudesse especificar que um determinado tipo de ICMS poderia aceitar somente um determinado tipo de CST desse Enum?

Como por exemplo:

public class Imposto
{
    [XmlEnum(AcceptOnly = [IcmsCst.Cst00])] // como exemplo do que busco para a limitação
    public ICMS Icms00 { get; set; }
}

E com isso essa ter a validação feita automaticamente ao serializar o objeto Imposto em um XML?

One Answer

Não tem mecanismo específico pronto. É possível criar um framework completo para tratar isso. Ou fazer o simples e na hora de importar a informação tratar se ela é válida ou não. Mecanismos genéricos são úteis para serem reaproveitados. Então existem quando é algo que todo mundo precisa, ou você deve fazer o seu, se precisar usar muitas vezes e isto traz vantagens.

Mesmo se fizer, precisa ter uma forma muito bem pensada de como tratar isso, o que pode não existir uma forma universal. Não aceita, e daí? Nem esse ponto está definido na pergunta, sem o critério claro não tem boa solução. De qualquer forma é muito difícil estabelecer esses critérios em código de forma declarativa.

Answered by Maniero on September 29, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP