Пользовательский тип данных: отображение имени типа, а не значения свойства - PullRequest
0 голосов
/ 15 ноября 2011

В одном из моих проектов есть собственный тип данных для свойств бизнес-объекта.Этот пользовательский тип является оболочкой для базовых типов данных в .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;
        }
}

1 Ответ

1 голос
/ 15 ноября 2011

Если я правильно понимаю, вам нужно переопределить ToString.

public class CustomType<T>
{
    public override string ToString()
    {
        return Value.ToString(); //I assume Value is of type T.
    }
}

Я сделал определенное количество предположений, возможно, вы могли бы показать код для вашего пользовательского типа и все, что дает вам тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...