protected override void SetObjectProperty()

in src/nms-api/Util/MessagePropertyIntercepter.cs [78:103]


        protected override void SetObjectProperty(string name, object value)
        {
            PropertyInfo propertyInfo = this.messageType.GetProperty(name, publicBinding);

            if (!name.StartsWith("NMS"))
            {
                base.SetObjectProperty(name, value);
            }
            else if (null != propertyInfo && propertyInfo.CanWrite)
            {
                propertyInfo.SetValue(this.message, value, null);
            }
            else
            {
                FieldInfo fieldInfo = this.messageType.GetField(name, publicBinding);

                if (null != fieldInfo && !fieldInfo.IsLiteral && !fieldInfo.IsInitOnly)
                {
                    fieldInfo.SetValue(this.message, value);
                }
                else
                {
                    base.SetObjectProperty(name, value);
                }
            }
        }