Example #1
0
        /// <summary>
        /// Resolves a meta field definition into actual native field. Returns null wen resolution is not possible and field should be skipped
        /// </summary>
        public virtual FieldInfo ResolveField(Type nativeType, MetaComplexType.MetaField mfield)
        {
            var fname = mfield.FieldName;
            var fi    = nativeType.GetField(fname, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);

            if (fi.IsNotSerialized)
            {
                return(null);
            }
            return(fi);
        }
Example #2
0
 /// <summary>
 /// Resolves a meta field definition into actual native field. Returns null wen resolution is not possible and field should be skipped
 /// </summary>
 public abstract FieldInfo ResolveField(Type nativeType, MetaComplexType.MetaField mfield);
Example #3
0
        /// <summary>
        /// Performs the assignment of portable data into native field
        /// </summary>
        public virtual void SetFieldData(object instance, FieldInfo fieldInfo, CompositeReflectedData data, MetaComplexType.MetaField mfield)
        {
            var nativeData = data.Document.PortableDataToNativeData(this, data.m_FieldData[mfield.m_Index]);

            fieldInfo.SetValue(instance, nativeData);
        }
Example #4
0
 /// <summary>
 /// Handles the assignemnt from ReflectedData into CLR fieldInfo. Override to make conversions, i.e. string to bool, int to string etc...
 /// Return true to indicate that default framework implementation should not be called
 /// </summary>
 public abstract bool SetFieldValue(ReadingStrategy readingStrategy, object instance, FieldInfo fieldInfo, CompositeReflectedData data, MetaComplexType.MetaField mfield);