BetterMembership.Utils.RoleProviderAccessor.RoleProviderAccessor C# (CSharp) Method

RoleProviderAccessor() static private method

static private RoleProviderAccessor ( ) : System
return System
        static RoleProviderAccessor()
        {
            var type = typeof(Roles);
            var providerFieldInfo = type.GetField(
                ProviderBackingFieldName, BindingFlags.NonPublic | BindingFlags.Static);
            if (providerFieldInfo != null)
            {
                ProviderSetter = provider =>
                    {
                        var value = providerFieldInfo.GetValue(null) as RoleProvider;
                        providerFieldInfo.SetValue(null, provider);
                        return value;
                    };
            }

            var initializedFieldInfo = type.GetField(
                InitializedBackingFieldName, BindingFlags.NonPublic | BindingFlags.Static);
            if (initializedFieldInfo != null)
            {
                InitializedSetter = v =>
                    {
                        var value = (bool)initializedFieldInfo.GetValue(null);
                        if (value != v)
                        {
                            initializedFieldInfo.SetValue(null, v);
                        }

                        return value;
                    };
            }

            var initializedDefaultProviderFieldInfo = type.GetField(
                InitializedDefaultProviderBackingFieldName, BindingFlags.NonPublic | BindingFlags.Static);
            if (initializedDefaultProviderFieldInfo != null)
            {
                InitializedDefaultProviderSetter = v =>
                    {
                        var value = (bool)initializedDefaultProviderFieldInfo.GetValue(null);
                        if (value != v)
                        {
                            initializedDefaultProviderFieldInfo.SetValue(null, v);
                        }

                        return value;
                    };
            }

            var enabledFieldInfo = type.GetField(EnabledBackingFieldName, BindingFlags.NonPublic | BindingFlags.Static);
            if (enabledFieldInfo != null)
            {
                EnabledSetter = v =>
                    {
                        var value = (bool)enabledFieldInfo.GetValue(null);
                        if (value != v)
                        {
                            enabledFieldInfo.SetValue(null, v);
                        }

                        return value;
                    };
            }

            var providersFieldInfo = type.GetField(
                ProvidersBackingFieldName, BindingFlags.NonPublic | BindingFlags.Static);
            if (providersFieldInfo != null)
            {
                ProvidersSetter = v =>
                    {
                        var value = (RoleProviderCollection)providersFieldInfo.GetValue(null);
                        if (value != v)
                        {
                            providersFieldInfo.SetValue(null, v);
                        }

                        return value;
                    };
            }
        }