Exemplo n.º 1
0
        /// <summary>
        /// Get inner DuckType
        /// </summary>
        /// <param name="field">Field reference</param>
        /// <param name="interfaceType">Interface type</param>
        /// <param name="value">Property value</param>
        /// <returns>DuckType instance</returns>
        protected static IDuckType GetInnerDuckType(ref DuckType field, Type interfaceType, object?value)
        {
            if (value is null)
            {
                field = null !;
                return(field);
            }
            var valueType = value.GetType();

            if (field is null || field.Type != valueType)
            {
                field = (DuckType)Create(interfaceType, valueType);
            }
            field.SetInstance(value);
            return(field);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Set inner DuckType
 /// </summary>
 /// <param name="field">Field reference</param>
 /// <param name="value">DuckType instance</param>
 /// <returns>Property value</returns>
 protected static object?SetInnerDuckType(ref DuckType field, DuckType?value)
 {
     field = value !;
     return(field?.Instance);
 }