/// <summary> /// <para> /// This method allows a generalized implementation of transfering /// a value from a /// <see cref="ResourceBuilder.ResourceAttributes"/> /// to a /// <see cref="MediaResource"/> /// object. /// </para> /// /// <para> /// Classes derived from the /// <see cref="ResourceBuilder.ResourceAttributes"/> /// class have fields, with names that match against fields in a /// <see cref="MediaResource"/> /// object. /// </para> /// </summary> /// <param name="attribName">name of the attribute to transfer</param> /// <param name="res">The /// <see cref="MediaResource"/> /// object to transfer to. /// </param> /// <param name="attribs"> /// The /// <see cref="ResourceBuilder.ResourceAttributes"/> /// object to transfer from. /// </param> private static void TransferValue(string attribName, MediaResource res, ResourceAttributes attribs) { object val = null; System.Type type = attribs.GetType(); FieldInfo info = type.GetField(attribName); if (info != null) { val = info.GetValue(attribs); if (val != null) { IValueType ivt = val as IValueType; bool ok = true; if (ivt != null) { ok = ivt.IsValid; } if (ok) { //res.m_Attributes[attribName] = val; res[attribName] = val; } } } }