В одном из моих проектов есть собственный тип данных для свойств бизнес-объекта.Этот пользовательский тип является оболочкой для базовых типов данных в .NET.
Когда я пытаюсь получить значение из свойства, отображается следующий текст, если синтаксис:
company.Name
Interfaces.Model.CustomType`1[System.String]
Ожидается:
company.Name.Value
Я бы хотел избежать необходимости использовать .value;я пытаюсь перегрузить операцию или неявные / явные методы?
Любая помощь будет полезна.
Вот общая схема CustomType:
public class CustomType<t>
{
#region Implicit Casting
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static implicit operator t(CustomType<t> obj)
{
if (obj == null)
return new CustomType<t>().Value;
return obj.Value;
}
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static implicit operator CustomType<t>(t obj)
{
return new CustomType<t>(obj);
}
#endregion Implicit Casting
/// <summary>
/// Gets or sets the value.
/// </summary>
/// <value>The value.</value>
public t Value
{
get
{
return _value;
}
set
{
_value = value;
}
}
/// <summary>
/// Sets the value.
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public CustomType<t> setValue(t value)
{
try
{
Value = value;
}
catch (InvalidCastException e)
{
throw new InvalidCastException("CustomType invalid property cast ", e.InnerException);
}
return this;
}
}