Pergunta

Eu tenho uma estrutura que funciona muito parecida com o sistema.

public struct SpecialProperty<T>
{
    public static implicit operator T(SpecialProperty<T> value)
    {
        return value.Value;
    }
    public static implicit operator SpecialProperty<T>(T value)
    {
        return new SpecialProperty<T> { Value = value };
    }

    T internalValue;
    public T Value { get { return internalValue; } set { internalValue = value; } }

    public override bool Equals(object other)
    {
        return Value.Equals(other);
    }
    public override int GetHashCode()
    {
        return Value.GetHashCode();
    }
    public override string ToString()
    {
        return Value.ToString();
    }

}

Estou tentando usá -lo com a ligação do ASP.NET MVC. Usando o modelo de modelo de cliente padrão, a propriedade sempre produzirá nulo. Eu posso corrigir isso adicionando ".Value" ao final de todos os nomes de entrada de formulários, mas eu só quero que ele se vincule ao novo tipo diretamente usando algum tipo de fichário de modelo personalizado, mas todas as soluções que eu tentei pareciam desnecessariamente complexas . Sinto que deveria ser capaz de estender o fichário padrão e com algumas linhas de código redirecionar a propriedade que se liga a todo o modelo usando conversão implícita. Não recebo o paradigma de ligação do fichário padrão, mas parece realmente preso a essa distinção entre o modelo e as propriedades do modelo. Qual é o método mais simples para fazer isso? Obrigado!

Foi útil?

Solução

Encontrei a resposta. Eu só precisava implementar um conversor de tipo personalizado e o fichário do modelo padrão o pegou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top