/// <summary>
            ///     Adds one or more specific types and all their members to the whitelist.
            /// </summary>
            /// <param name="target"></param>
            /// <param name="types"></param>
            public void AllowTypes(MyWhitelistTarget target, params Type[] types)
            {
                if (types.IsNullOrEmpty())
                {
                    throw new MyWhitelistException("Needs at least one type");
                }
                AssertVitality();
                for (var index = 0; index < types.Length; index++)
                {
                    var type = types[index];
                    if (type == null)
                    {
                        throw new MyWhitelistException("The type in index " + index + " is null");
                    }
                    var typeSymbol = ResolveTypeSymbol(type);

                    Whitelist.Register(target, typeSymbol, type);
                }
            }
            /// <summary>
            ///     Adds the entire namespace of one or more given types.
            /// </summary>
            /// <param name="target"></param>
            /// <param name="types"></param>
            public void AllowNamespaceOfTypes(MyWhitelistTarget target, params Type[] types)
            {
                if (types.IsNullOrEmpty())
                {
                    throw new MyWhitelistException("Needs at least one type");
                }
                AssertVitality();
                for (var index = 0; index < types.Length; index++)
                {
                    var type = types[index];
                    if (type == null)
                    {
                        throw new MyWhitelistException("The type in index " + index + " is null");
                    }
                    var typeSymbol      = ResolveTypeSymbol(type);
                    var namespaceSymbol = typeSymbol.ContainingNamespace;
                    if (namespaceSymbol == null || namespaceSymbol.IsGlobalNamespace)
                    {
                        continue;
                    }

                    Whitelist.Register(target, namespaceSymbol, type);
                }
            }