У меня есть структура, которая очень похожа на тип System.Nullable:
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();
}
}
Я пытаюсь использовать его с привязкой ASP.NET MVC. При использовании связывателя модели клиента по умолчанию свойство всегда будет иметь значение NULL. Я могу исправить это, добавив ".Value" в конец каждого имени ввода формы, но я просто хочу, чтобы он привязывался к новому типу напрямую с помощью какого-то настраиваемого связывателя модели, но все решения, которые я пробовал, казались излишне сложными . Я чувствую, что смогу расширить связыватель по умолчанию и с помощью нескольких строк кода перенаправить привязку свойства ко всей модели с использованием неявного преобразования. Я не совсем понимаю парадигму привязки связующего по умолчанию, но, похоже, действительно застрял на этом различии между моделью и ее свойствами. Как это сделать проще всего? Спасибо!