Pregunta

Tengo una estructura que funciona muy parecida al 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();
    }

}

Estoy tratando de usarlo con ASP.NET MVC Binding. Usando la carpeta de modelo de cliente predeterminada, la propiedad siempre producirá nula. Puedo solucionar esto agregando ".value" al final de cada nombre de entrada de forma, pero solo quiero que se una al nuevo tipo directamente usando algún tipo de aglutinante de modelo personalizado, pero todas las soluciones que he probado parecían innecesariamente complejas . Siento que debería poder extender la carpeta predeterminada y con algunas líneas de código redirigir la propiedad vinculante a todo el modelo utilizando la conversión implícita. No obtengo el paradigma de unión de la carpeta predeterminada, pero parece realmente atascado en esta distinción entre el modelo y las propiedades del modelo. ¿Cuál es el método más simple para hacer esto? ¡Gracias!

¿Fue útil?

Solución

Encontró la respuesta. Solo necesitaba implementar un convertidor de tipo personalizado y la carpeta de modelo predeterminada lo recogió.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top