public PermissionValueProviderManager(
            IServiceProvider serviceProvider,
            IOptions <PlusPermissionOptions> options)
        {
            Options = options.Value;

            _lazyProviders = new Lazy <List <IPermissionValueProvider> >(
                () => Options
                .ValueProviders
                .Select(c => serviceProvider.GetRequiredService(c) as IPermissionValueProvider)
                .ToList(),
                true
                );
        }
        public PermissionDefinitionManager(
            IOptions <PlusPermissionOptions> options,
            IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
            Options          = options.Value;

            _lazyPermissionDefinitions = new Lazy <Dictionary <string, PermissionDefinition> >(
                CreatePermissionDefinitions,
                isThreadSafe: true
                );

            _lazyPermissionGroupDefinitions = new Lazy <Dictionary <string, PermissionGroupDefinition> >(
                CreatePermissionGroupDefinitions,
                isThreadSafe: true
                );
        }