Feedback

C# - Objekt Indexer

Veröffentlicht von am 04.04.2012
(0 Bewertungen)
Objektindexer um auf die Werte der einzelnen propertys der jeweiligen Objektinstanz mittels dem Namen zuzugreifen und diese zu setzen.

Die Methode setPropertyValue(PropertyInfo propertyInfo, object valueToSet)ist dafür zuständig den jeweilig übergebenen Wert in den Datentyp der property zu konvertieren.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

 /// <summary>
        /// Property indexer
        /// </summary>
        public virtual object this[string key]
        {
            get
            {
                PropertyInfo info = this.GetType().GetProperty(key);
                if (info == null)
                    return null;
                return info.GetValue(this, null);
            }
            set
            {
                PropertyInfo info = this.GetType().GetProperty(key);
                if (info != null)
                    this.setPropertyValue(info, value);
            }
        }

/// <summary>
        /// Sets the property value.
        /// </summary>
        /// <param name="propertyInfo">The property info.</param>
        /// <param name="valueToSet">The value to set.</param>
        private void setPropertyValue(PropertyInfo propertyInfo, object valueToSet)
        {
            var targetType = propertyInfo.PropertyType.IsGenericType && propertyInfo.PropertyType.GetGenericTypeDefinition().Equals(typeof(System.Nullable<>)) ? Nullable.GetUnderlyingType(propertyInfo.PropertyType) : propertyInfo.PropertyType;
            var convertedValue = Convert.ChangeType(valueToSet, targetType);

            propertyInfo.SetValue(this, convertedValue, null);
        }



Abgelegt unter Indexer, Objekt, Object.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!