Dicom.Data.DcmDataset.LoadDicomFields C# (CSharp) Method

LoadDicomFields() public method

public LoadDicomFields ( object obj ) : void
obj object
return void
        public void LoadDicomFields(object obj)
        {
            FieldInfo[] fields = obj.GetType().GetFields();
            foreach (FieldInfo field in fields) {
                if (field.IsDefined(typeof(DicomFieldAttribute), true)) {
                    try {
                        DicomFieldAttribute dfa = (DicomFieldAttribute)field.GetCustomAttributes(typeof(DicomFieldAttribute), true)[0];
                        DcmElement elem = GetElement(dfa.Tag);
                        if ((elem == null || (elem.Length == 0 && dfa.UseDefaultForZeroLength)) && dfa.DefaultValue == DicomFieldDefault.None) {
                            // do nothing
                        }
                        else {
                            field.SetValue(obj, LoadDicomFieldValue(elem, field.FieldType, dfa.DefaultValue, dfa.UseDefaultForZeroLength));
                        }
                    }
                    catch (Exception e) {
                        Debug.Log.Debug("Unable to bind field: " + e.Message);
                    }
                }
            }

            PropertyInfo[] properties = obj.GetType().GetProperties();
            foreach (PropertyInfo property in properties) {
                if (property.IsDefined(typeof(DicomFieldAttribute), true)) {
                    try {
                        DicomFieldAttribute dfa = (DicomFieldAttribute)property.GetCustomAttributes(typeof(DicomFieldAttribute), true)[0];
                        DcmElement elem = GetElement(dfa.Tag);
                        if ((elem == null || (elem.Length == 0 && dfa.UseDefaultForZeroLength)) && dfa.DefaultValue == DicomFieldDefault.None) {
                            // do nothing
                        } else {
                            property.SetValue(obj, LoadDicomFieldValue(elem, property.PropertyType, dfa.DefaultValue, dfa.UseDefaultForZeroLength), null);
                        }
                    }
                    catch (Exception e) {
                        Debug.Log.Debug("Unable to bind field: " + e.Message);
                    }
                }
            }
        }