private IEnumerable <FieldDescriptor> ResolveFieldsDescriptor()
        {
            var _fields     = new List <FieldDescriptor>();
            var _fieldsInfo = _profileType.GetFields(BindingFlags.FlattenHierarchy | BindingFlags.Instance |
                                                     BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (var _fieldInfo in _fieldsInfo)
            {
                if (Attribute.IsDefined(_fieldInfo, typeof(ResolveResourceBaseAttribute), false))
                {
                    if (!_fieldInfo.IsPublic)
                    {
                        throw new ResolveResourceException(
                                  string.Format(RESOLVEFIELD_MUSTBE_PUBLIC, _fieldInfo.Name, DescriptorType), DescriptorType);
                    }
                    if (_fieldInfo.IsStatic)
                    {
                        throw new ResolveResourceException(
                                  string.Format(RESOLVEFIELD_MUSTBE_INSTANCE, _fieldInfo.Name, DescriptorType), DescriptorType);
                    }
                    if (_fieldInfo.IsLiteral || _fieldInfo.IsInitOnly)
                    {
                        throw new ResolveResourceException(
                                  string.Format(RESOLVEFIELD_MUSTNOTBE_CONSTORREADONLY, _fieldInfo.Name, DescriptorType), DescriptorType);
                    }

                    var _attribute = Attribute.GetCustomAttribute(_fieldInfo, typeof(ResolveResourceBaseAttribute));
                    _fields.Add(new FieldDescriptor()
                    {
                        Field    = _fieldInfo,
                        Resolver = (IResourceResolver)_attribute
                        ,
                        FieldSetterDelegate = TypeActivator.CreateFieldDelegate(_fieldInfo)
                    });
                }
            }

            return(_fields);
        }