/// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        /// <returns></returns>
        public static IRegistryPathInfo ExtractRegistryPathProvider(object instance)
        {
            try
            {
                return(AttributeMemberHelpers
                       .RetrieveMember(instance, typeof(IRegistryPathInfo), false) as IRegistryPathInfo);
            }
            catch (NullReferenceException)
            {
                if (instance is IRegistryPathInfo)
                {
                    return(instance as IRegistryPathInfo);
                }
            }

            return(null);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="instance"></param>
        /// <returns></returns>
        public static ICryptoTransformable RetrieveCryptoTransform(object instance)
        {
            if (ObjectUtils.IsClassType(instance))
            {
                var _encryptable     = AttributeMemberHelpers.RetrieveMember(instance, typeof(IEncryptable), true) as IEncryptable;
                var _cryptoTransform = ObjectUtils.CreateInstanceOf <ICryptoTransformable>(_encryptable.CryptoTransformProvider);

                if (null != _cryptoTransform)
                {
                    _cryptoTransform.SaltKey  = _encryptable.SaltKey;
                    _cryptoTransform.Password = _encryptable.Password;

                    return(_cryptoTransform);
                }
            }

            return(null);
        }