<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Catel.Core</name>
    </assembly>
    <members>
        <member name="T:Catel.Android.ContextHelper">
            <summary>
            The context helper.
            </summary>
        </member>
        <member name="P:Catel.Android.ContextHelper.CurrentContext">
            <summary>
            Gets or sets the current context.
            <para />
            Note that the setter is made public to allow customization. It will be used primarily by Catel though.
            </summary>
            <value>The current context.</value>
        </member>
        <member name="T:Catel.ApiCop.ApiCop">
            <summary>
            ApiCop writer class.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCop.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.ApiCop"/> class.
            </summary>
            <param name="targetType">The type for which this ApiCop is intented.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="targetType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.ApiCop.ApiCop.TargetType">
            <summary>
            Gets the target type of the ApiCop. This is the type where the ApiCop is created for.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="M:Catel.ApiCop.ApiCop.RegisterRule``1(``0)">
            <summary>
            Registers the rule with this ApiCop.
            </summary>
            <typeparam name="TRule">The type of the rule.</typeparam>
            <param name="rule">The rule.</param>
            <returns>The rule.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="rule"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCop.UpdateRule``1(System.String,System.Action{``0})">
            <summary>
            Updates the rule with the specified name. If the rule is found and the ApiCop functionality is enabled,
            the specified action will be invoked on the registered rule.
            </summary>
            <typeparam name="TRule">The type of the rule.</typeparam>
            <param name="name">The name.</param>
            <param name="action">The action.</param>
            <returns>The rule or <c>null</c> if the rule is not registered first.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCop.GetResults">
            <summary>
            Gets the results of this specific ApiCop.
            </summary>
            <returns>The results of this ApiCop.</returns>
        </member>
        <member name="T:Catel.ApiCop.ApiCopListenerBase">
            <summary>
            Base class for ApiCop listeners.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.ApiCopListenerBase"/> class.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.ApiCopListenerBase.Grouping">
            <summary>
            Gets or sets the grouping for this listener.
            </summary>
            <value>The grouping.</value>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.WriteResults(System.Collections.Generic.IEnumerable{Catel.ApiCop.IApiCopResult})">
            <summary>
            Writes the results of the ApiCop feature.
            <para />
            Note that this will only contain invalid results. Valid results are not written to the
            listeners.
            </summary>
            <param name="results">The results.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.BeginWriting">
            <summary>
            Called when the listener is about to write the results.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.WriteSummary(System.Collections.Generic.IEnumerable{Catel.ApiCop.IApiCopResult})">
            <summary>
            Writes the summary, called before any groups are written.
            </summary>
            <param name="results">The results.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.BeginWritingOfGroup(System.String)">
            <summary>
            Begins the writing of a specific group.
            </summary>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.WriteResult(Catel.ApiCop.IApiCopResult)">
            <summary>
            Writes the result to the listener target.
            </summary>
            <param name="result">The result.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.EndWritingOfGroup(System.String)">
            <summary>
            Ends the writing of a specific group.
            </summary>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopListenerBase.EndWriting">
            <summary>
            Called when the listener has finished writing all the results.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.ApiCopManager">
            <summary>
            Manager class for the ApiCop feature.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.ApiCop.ApiCopManager"/> class.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.ApiCopManager.IsEnabled">
            <summary>
            Gets a value indicating whether ApiCop is enabled.
            </summary>
            <value><c>true</c> if ApiCop is enabled; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopManager.IgnoredRules">
            <summary>
            Gets the ignored rules.
            </summary>
            <value>The ignored rules.</value>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.GetCurrentClassApiCop">
            <summary>
            Gets the current class ApiCop.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.GetApiCop(System.Type)">
            <summary>
            Gets the ApiCop for the specified type.
            </summary>
            <param name="type">The type.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.GetListeners">
            <summary>
            Gets all the currently registered listeners.
            </summary>
            <returns>An enumerable of all listeners.</returns>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.AddListener(Catel.ApiCop.IApiCopListener)">
            <summary>
            Adds the ApiCop listener which will receive all ApiCop information.
            <para />
            This method does not check whether the <paramref name="listener"/> is already added to the list
            of registered listeners.
            </summary>
            <param name="listener">The listener.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.RemoveListener(Catel.ApiCop.IApiCopListener)">
            <summary>
            Removes the ApiCop which will stop receiving all ApiCop information.
            </summary>
            <param name="listener">The listener.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.IsListenerRegistered(Catel.ApiCop.IApiCopListener)">
            <summary>
            Determines whether the specified listener is already registered or not.
            </summary>
            <param name="listener">The listener.</param>
            <returns>
            <c>true</c> if the specified listener is already registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.ClearListeners">
            <summary>
            Clears all the current listeners.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopManager.WriteResults">
            <summary>
            Writes the results to all the registered listeners.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.ApiCopResult">
            <summary>
            ApiCop result class.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopResult.#ctor(Catel.ApiCop.IApiCop,Catel.ApiCop.IApiCopRule,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.ApiCopResult"/> class.
            </summary>
            <param name="cop">The API cop.</param>
            <param name="rule">The rule.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="cop"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="rule"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tag"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.ApiCop.ApiCopResult.Cop">
            <summary>
            Gets the cop.
            </summary>
            <value>The cop.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopResult.Rule">
            <summary>
            Gets the rule.
            </summary>
            <value>The rule.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopResult.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.ApiCop.ApiCopRule">
            <summary>
            Class containing an ApiCop rule.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.#ctor(System.String,System.String,Catel.ApiCop.ApiCopRuleLevel,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.ApiCopRule" /> class.
            </summary>
            <param name="name">The name.</param>
            <param name="description">The description.</param>
            <param name="level">The level.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="P:Catel.ApiCop.ApiCopRule.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopRule.Description">
            <summary>
            Gets the description.
            </summary>
            <value>The description.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopRule.Url">
            <summary>
            Gets the URL.
            </summary>
            <value>The URL.</value>
        </member>
        <member name="P:Catel.ApiCop.ApiCopRule.Level">
            <summary>
            Gets the level of impact this rule has.
            </summary>
            <value>The level.</value>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.GetPropertyBagForTag(System.String)">
            <summary>
            Gets the property bag for the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The property bag.</returns>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.AddTag(System.String)">
            <summary>
            Adds the tag so it is known in this rule.
            </summary>
            <param name="tag">The tag.</param>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.GetTags">
            <summary>
            Gets all the tags used by this rule.
            </summary>
            <returns>The list of tags.</returns>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.IsValid(Catel.ApiCop.IApiCop,System.String)">
            <summary>
            Determines whether the specified ApiCop rule is valid.
            </summary>
            <param name="apiCop">The ApiCop.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified ApiCop is valid; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ApiCop.ApiCopRule.GetResultAsText(System.String)">
            <summary>
            Gets the result as text.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The result as text.</returns>
        </member>
        <member name="T:Catel.ApiCop.ApiCopRuleLevel">
            <summary>
            Enum containing the ApiCop rule levels.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopRuleLevel.Hint">
            <summary>
            Following the hints of this rule might improve the usage of the Api, but can be ignored if too much work.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopRuleLevel.Warning">
            <summary>
            Following the hints of this rule might improve the usage of the Api.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopRuleLevel.Error">
            <summary>
            This rule must be taken seriously.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.IApiCop">
            <summary>
            Interface to specify writers for the ApiCop functionality.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.IApiCop.TargetType">
            <summary>
            Gets the target type of the ApiCop. This is the type where the ApiCop is created for.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="M:Catel.ApiCop.IApiCop.GetResults">
            <summary>
            Gets the results of this specific ApiCop.
            </summary>
            <returns>The results of this ApiCop.</returns>
        </member>
        <member name="M:Catel.ApiCop.IApiCop.RegisterRule``1(``0)">
            <summary>
            Registers the rule with this ApiCop.
            </summary>
            <typeparam name="TRule">The type of the rule.</typeparam>
            <param name="rule">The rule.</param>
            <returns>The rule.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="rule"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ApiCop.IApiCop.UpdateRule``1(System.String,System.Action{``0})">
            <summary>
            Updates the rule with the specified name. If the rule is found and the ApiCop functionality is enabled,
            the specified action will be invoked on the registered rule.
            </summary>
            <typeparam name="TRule">The type of the rule.</typeparam>
            <param name="name">The name.</param>
            <param name="action">The action.</param>
            <returns>The rule or <c>null</c> if the rule is not registered first.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ApiCop.ApiCopListenerGrouping">
            <summary>
            Grouping options for the <see cref="T:Catel.ApiCop.IApiCopListener"/> implementations.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopListenerGrouping.Cop">
            <summary>
            Group by cop.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopListenerGrouping.Rule">
            <summary>
            Group by rule.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.ApiCopListenerGrouping.Tag">
            <summary>
            Group by tag.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.IApiCopListener">
            <summary>
            Interface defining ApiCop listeners.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.IApiCopListener.Grouping">
            <summary>
            Gets or sets the grouping for this listener.
            </summary>
            <value>The grouping.</value>
        </member>
        <member name="M:Catel.ApiCop.IApiCopListener.WriteResults(System.Collections.Generic.IEnumerable{Catel.ApiCop.IApiCopResult})">
            <summary>
            Writes the results of the ApiCop feature.
            <para />
            Note that this will only contain invalid results. Valid results are not written to the
            listeners.
            </summary>
            <param name="results">The results.</param>
        </member>
        <member name="T:Catel.ApiCop.IApiCopResult">
            <summary>
            Interface defining ApiCop results.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.IApiCopResult.Cop">
            <summary>
            Gets the cop.
            </summary>
            <value>The cop.</value>
        </member>
        <member name="P:Catel.ApiCop.IApiCopResult.Rule">
            <summary>
            Gets the rule.
            </summary>
            <value>The rule.</value>
        </member>
        <member name="P:Catel.ApiCop.IApiCopResult.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.ApiCop.IApiCopRule">
            <summary>
            Interface defining ApiCop rules.
            </summary>
        </member>
        <member name="P:Catel.ApiCop.IApiCopRule.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="P:Catel.ApiCop.IApiCopRule.Description">
            <summary>
            Gets the description.
            </summary>
            <value>The description.</value>
        </member>
        <member name="P:Catel.ApiCop.IApiCopRule.Url">
            <summary>
            Gets the URL.
            </summary>
            <value>The URL.</value>
        </member>
        <member name="P:Catel.ApiCop.IApiCopRule.Level">
            <summary>
            Gets the level of impact this rule has.
            </summary>
            <value>The level.</value>
        </member>
        <member name="M:Catel.ApiCop.IApiCopRule.IsValid(Catel.ApiCop.IApiCop,System.String)">
            <summary>
            Determines whether the specified ApiCop rule is valid.
            </summary>
            <param name="apiCop">The ApiCop.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified ApiCop is valid; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ApiCop.IApiCopRule.GetTags">
            <summary>
            Gets all the tags used by this rule.
            </summary>
            <returns>The list of tags.</returns>
        </member>
        <member name="M:Catel.ApiCop.IApiCopRule.GetResultAsText(System.String)">
            <summary>
            Gets the result as text.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The result as text.</returns>
        </member>
        <member name="T:Catel.ApiCop.Listeners.ConsoleApiCopListener">
            <summary>
            <see cref="T:Catel.ApiCop.IApiCopListener"/> implementation which writes all results to the console.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Listeners.ConsoleApiCopListener.WriteLine(System.String)">
            <summary>
            Writes the line the to final output.
            </summary>
            <param name="line">The line.</param>
        </member>
        <member name="T:Catel.ApiCop.Listeners.TextFileApiCopListener">
            <summary>
            <see cref="T:Catel.ApiCop.IApiCopListener"/> implementation which writes all results to a text file.
            <para />
            If no <c>FileStream</c> is available in the target platform, this will write to a memory stream.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Listeners.TextFileApiCopListener.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.Listeners.TextFileApiCopListener"/> class.
            </summary>
            <param name="fileName">Name of the file.</param>
        </member>
        <member name="M:Catel.ApiCop.Listeners.TextFileApiCopListener.WriteLine(System.String)">
            <summary>
            Writes the line the to final output.
            </summary>
            <param name="line">The line.</param>
        </member>
        <member name="M:Catel.ApiCop.Listeners.TextFileApiCopListener.BeginWriting">
            <summary>
            Called when the listener is about to write the results.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Listeners.TextFileApiCopListener.EndWriting">
            <summary>
            Called when the listener has finished writing all the results.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.TextApiCopListenerBase">
            <summary>
            <see cref="T:Catel.ApiCop.IApiCopListener"/> implementation which writes all results to a text file.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.BeginWriting">
            <summary>
            Called when the listener is about to write the results.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.WriteSummary(System.Collections.Generic.IEnumerable{Catel.ApiCop.IApiCopResult})">
            <summary>
            Writes the summary, called before any groups are written.
            </summary>
            <param name="results">The results.</param>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.BeginWritingOfGroup(System.String)">
            <summary>
            Begins the writing of a specific group.
            </summary>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.WriteResult(Catel.ApiCop.IApiCopResult)">
            <summary>
            Writes the result to the listener target.
            </summary>
            <param name="result">The result.</param>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.EndWritingOfGroup(System.String)">
            <summary>
            Ends the writing of a specific group.
            </summary>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.EndWriting">
            <summary>
            Called when the listener has finished writing all the results.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.WriteLine(System.String,System.Object[])">
            <summary>
            Writes the line with formatting arguments.
            </summary>
            <param name="format">The format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.ApiCop.TextApiCopListenerBase.WriteLine(System.String)">
            <summary>
            Writes the line the to final output.
            </summary>
            <param name="line">The line.</param>
        </member>
        <member name="T:Catel.ApiCop.Rules.InitializationMode">
            <summary>
            The initialization mode.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.Rules.InitializationMode.Lazy">
            <summary>
            The lazy.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.Rules.InitializationMode.Eager">
            <summary>
            The eager.
            </summary>
        </member>
        <member name="T:Catel.ApiCop.Rules.InitializationApiCopRule">
            <summary>
            Rule to show that classes should be initialized at startup.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Rules.InitializationApiCopRule.#ctor(System.String,System.String,Catel.ApiCop.ApiCopRuleLevel,Catel.ApiCop.Rules.InitializationMode,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.Rules.InitializationApiCopRule" /> class.
            </summary>
            <param name="name">The name.</param>
            <param name="description">The description.</param>
            <param name="level">The level.</param>
            <param name="recommendedInitializationMode">The recommended initialization mode.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="P:Catel.ApiCop.Rules.InitializationApiCopRule.RecommendedInitializationMode">
            <summary>
            Gets the recommended initialization mode.
            </summary>
            <value>The recommended initialization mode.</value>
        </member>
        <member name="M:Catel.ApiCop.Rules.InitializationApiCopRule.IsValid(Catel.ApiCop.IApiCop,System.String)">
            <summary>
            Determines whether the specified ApiCop rule is valid.
            </summary>
            <param name="apiCop">The ApiCop.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified ApiCop is valid; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:Catel.ApiCop.Rules.InitializationApiCopRule.GetResultAsText(System.String)">
            <summary>
            Gets the result as text.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The result as text.</returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:Catel.ApiCop.Rules.InitializationApiCopRule.SetInitializationMode(Catel.ApiCop.Rules.InitializationMode,System.String)">
            <summary>
            Sets the initialization model. If the value is already set, it won't be updated so it can be used without
            checking for previous states.
            </summary>
            <param name="initializationMode">The initialization mode.</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="T:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule">
            <summary>
            Rule to prevent too many dependencies on a class.
            </summary>
        </member>
        <member name="F:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule.MaxDependencies">
            <summary>
            The maximum dependencies
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule.#ctor(System.String,System.String,Catel.ApiCop.ApiCopRuleLevel,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.ApiCopRule" /> class.
            </summary>
            <param name="name">The name.</param>
            <param name="description">The description.</param>
            <param name="level">The level.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="M:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule.SetNumberOfDependenciesInjected(System.Type,System.Int32)">
            <summary>
            Sets the number of dependencies injected for the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="numberOfDependencies">The number of dependencies.</param>
        </member>
        <member name="M:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule.IsValid(Catel.ApiCop.IApiCop,System.String)">
            <summary>
            Determines whether the specified ApiCop rule is valid.
            </summary>
            <param name="apiCop">The ApiCop.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified ApiCop is valid; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ApiCop.Rules.TooManyDependenciesApiCopRule.GetResultAsText(System.String)">
            <summary>
            Gets the result as text.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The result as text.</returns>
        </member>
        <member name="T:Catel.ApiCop.Rules.UnusedFeatureApiCopRule">
            <summary>
            Rule to find out unused feature counts.
            </summary>
        </member>
        <member name="M:Catel.ApiCop.Rules.UnusedFeatureApiCopRule.#ctor(System.String,System.String,Catel.ApiCop.ApiCopRuleLevel,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ApiCop.Rules.UnusedFeatureApiCopRule" /> class.
            </summary>
            <param name="name">The name.</param>
            <param name="description">The description.</param>
            <param name="level">The level.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="M:Catel.ApiCop.Rules.UnusedFeatureApiCopRule.IncreaseCount(System.Boolean,System.String)">
            <summary>
            Increases the count and determines whether the feature is being used at the moment.
            </summary>
            <param name="isUsed">if set to <c>true</c>, the feature is being used.</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="M:Catel.ApiCop.Rules.UnusedFeatureApiCopRule.IsValid(Catel.ApiCop.IApiCop,System.String)">
            <summary>
            Determines whether the specified ApiCop rule is valid.
            </summary>
            <param name="apiCop">The ApiCop.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified ApiCop is valid; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ApiCop.Rules.UnusedFeatureApiCopRule.GetResultAsText(System.String)">
            <summary>
            Gets the result as text.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The result as text.</returns>
        </member>
        <member name="T:Catel.Argument">
            <summary>
            Argument validator class to help validating arguments that are passed into a method.
            <para />
            This class automatically adds thrown exceptions to the log file.
            </summary>
            <summary>
            Argument validator class to help validating arguments that are passed into a method.
            <para />
            This class automatically adds thrown exceptions to the log file.
            </summary>
        </member>
        <member name="F:Catel.Argument.Log">
            <summary>
            The <see cref="T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="M:Catel.Argument.IsNotNull(System.String,System.Object)">
            <summary>
            Determines whether the specified argument is not <c>null</c>.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="paramValue" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.String,System.String)">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or empty.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.String,System.Guid)">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or empty.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotEmpty(System.String,System.Guid)">
            <summary>
            Determines whether the specified argument is not empty.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or empty.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.String,System.Nullable{System.Guid})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or empty.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrWhitespace(System.String,System.String)">
            <summary>
            Determines whether the specified argument is not <c>null</c> or a whitespace.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or a whitespace.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmptyArray(System.String,System.Array)">
            <summary>
            Determines whether the specified argument is not <c>null</c> or an empty array (.Length == 0).
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentException">If <paramref name="paramValue" /> is <c>null</c> or an empty array.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOutOfRange``1(System.String,``0,``0,``0,System.Func{``0,``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument is not out of range.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="maximumValue">The maximum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOutOfRange``1(System.String,``0,``0,``0)">
            <summary>
            Determines whether the specified argument is not out of range.
            </summary>
            <typeparam name="T">Type of the argument.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="maximumValue">The maximum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.IsMinimal``1(System.String,``0,``0,System.Func{``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument has a minimum value.
            </summary>
            <typeparam name="T">Type of the argument.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.IsMinimal``1(System.String,``0,``0)">
            <summary>
            Determines whether the specified argument has a minimum value.
            </summary>
            <typeparam name="T">Type of the argument.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="minimumValue">The minimum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.IsMaximum``1(System.String,``0,``0,System.Func{``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument has a maximum value.
            </summary>
            <typeparam name="T">Type of the argument.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="maximumValue">The maximum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.IsMaximum``1(System.String,``0,``0)">
            <summary>
            Determines whether the specified argument has a maximum value.
            </summary>
            <typeparam name="T">Type of the argument.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">Value of the parameter.</param>
            <param name="maximumValue">The maximum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="paramValue" /> is out of range.</exception>
        </member>
        <member name="M:Catel.Argument.InheritsFrom(System.String,System.Type,System.Type)">
            <summary>
            Checks whether the specified <paramref name="type" /> inherits from the <paramref name="baseType" />.
            </summary>
            <param name="paramName">Name of the parameter.</param>
            <param name="type">The type.</param>
            <param name="baseType">The base type.</param>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="baseType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.InheritsFrom(System.String,System.Object,System.Type)">
            <summary>
            Checks whether the specified <paramref name="instance" /> inherits from the <paramref name="baseType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance.</param>
            <param name="baseType">The base type.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.InheritsFrom``1(System.String,System.Object)">
            <summary>
            Checks whether the specified <paramref name="instance" /> inherits from the specified <typeparamref name="TBase" />.
            </summary>
            <typeparam name="TBase">The base type.</typeparam>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsInterface(System.String,System.Object,System.Type)">
            <summary>
            Checks whether the specified <paramref name="instance" /> implements the specified <paramref name="interfaceType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="interfaceType">The type of the interface to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> does not implement the <paramref name="interfaceType" />.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsInterface``1(System.String,System.Object)">
            <summary>
            Checks whether the specified <paramref name="instance" /> implements the specified <typeparamref name="TInterface" />.
            </summary>
            <typeparam name="TInterface">The type of the T interface.</typeparam>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsInterface(System.String,System.Type,System.Type)">
            <summary>
            Checks whether the specified <paramref name="type" /> implements the specified <paramref name="interfaceType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="interfaceType">The type of the interface to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="interfaceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> does not implement the <paramref name="interfaceType" />.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsOneOfTheInterfaces(System.String,System.Object,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="instance" /> implements at least one of the specified <paramref name="interfaceTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="interfaceTypes">The types of the interfaces to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="interfaceTypes" /> is <c>null</c> or an empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> does not implement at least one of the <paramref name="interfaceTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsOneOfTheInterfaces(System.String,System.Type,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="type" /> implements at least one of the the specified <paramref name="interfaceTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="interfaceTypes">The types of the interfaces to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="interfaceTypes" /> is <c>null</c> or an empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> does not implement the <paramref name="interfaceTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfType(System.String,System.Object,System.Type)">
            <summary>
            Checks whether the specified <paramref name="instance" /> is of the specified <paramref name="requiredType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="requiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> is not of type <paramref name="requiredType" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfType(System.String,System.Type,System.Type)">
            <summary>
            Checks whether the specified <paramref name="type" /> is of the specified <paramref name="requiredType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="requiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> is not of type <paramref name="requiredType" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfOneOfTheTypes(System.String,System.Object,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="instance" /> is of at least one of the specified <paramref name="requiredTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="requiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="requiredTypes" /> is <c>null</c> or an empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> is not at least one of the <paramref name="requiredTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfOneOfTheTypes(System.String,System.Type,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="type" /> is of at least one of the specified <paramref name="requiredTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="requiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="requiredTypes" /> is <c>null</c> or an empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> is not at least one of the <paramref name="requiredTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfType(System.String,System.Object,System.Type)">
            <summary>
            Checks whether the specified <paramref name="instance" /> is not of the specified <paramref name="notRequiredType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="notRequiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="notRequiredType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> is of type <paramref name="notRequiredType" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfType(System.String,System.Type,System.Type)">
            <summary>
            Checks whether the specified <paramref name="type" /> is not of the specified <paramref name="notRequiredType" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="notRequiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="notRequiredType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> is of type <paramref name="notRequiredType" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfOneOfTheTypes(System.String,System.Object,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="instance" /> is not of any of the specified <paramref name="notRequiredTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="instance">The instance to check.</param>
            <param name="notRequiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="notRequiredTypes" /> is <c>null</c> or empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance" /> is of one of the <paramref name="notRequiredTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfOneOfTheTypes(System.String,System.Type,System.Type[])">
            <summary>
            Checks whether the specified <paramref name="type" /> is not of any of the specified <paramref name="notRequiredTypes" />.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="type">The type to check.</param>
            <param name="notRequiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentException">type</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="notRequiredTypes" /> is <c>null</c> or empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> is of one of the <paramref name="notRequiredTypes" />.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotMatch(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Determines whether the specified argument doesn't match with a given pattern.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="paramValue">The para value.</param>
            <param name="pattern">The pattern.</param>
            <param name="regexOptions">The regular expression options.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="paramValue" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Argument.IsMatch(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Determines whether the specified argument match with a given pattern.
            </summary>
            <param name="paramName">Name of the param.</param>
            <param name="paramValue">The param value.</param>
            <param name="pattern">The pattern.</param>
            <param name="regexOptions">The regular expression options.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="paramName" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="paramValue" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.String,``0,System.Func{System.Boolean})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">The parameter value.</param>
            <param name="validation">The validation function.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation" /> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramValue" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.String,``0,System.Func{``0,System.Boolean})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">The parameter value.</param>
            <param name="validation">The validation function.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation" /> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramValue" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.String,``0,Catel.Data.IValueValidator{``0})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">The parameter value.</param>
            <param name="validator">The validator.</param>
            <exception cref="T:System.ArgumentException">If the <see cref="M:Catel.Data.IValueValidator`1.IsValid(`0)" /> of  <paramref name="validator" /> returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramValue" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.String,``0,System.Boolean)">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="paramName">Name of the parameter.</param>
            <param name="paramValue">The parameter value.</param>
            <param name="validation">The validation function.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation" /> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="paramValue" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsSupported(System.Boolean,System.String,System.Object[])">
            <summary>
            Checks whether the passed in boolean check is <c>true</c>. If not, this method will throw a <see cref="T:System.NotSupportedException" />.
            </summary>
            <param name="isSupported">if set to <c>true</c>, the action is supported; otherwise <c>false</c>.</param>
            <param name="errorFormat">The error format.</param>
            <param name="args">The arguments for the string format.</param>
            <exception cref="T:System.NotSupportedException">The <paramref name="isSupported" /> is <c>false</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="errorFormat" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Argument.GetParameterInfo``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            The get parameter info.
            </summary>
            <typeparam name="T">The type of the parameter.</typeparam>
            <param name="expression">The expression.</param>
            <returns>The <see cref="T:Catel.Argument.ParameterInfo`1" />.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNull``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            Determines whether the specified argument is not <c>null</c>.
            </summary>
            <typeparam name="T">The parameter type.</typeparam>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or empty.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.Guid}})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or empty.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotEmpty(System.Linq.Expressions.Expression{System.Func{System.Guid}})">
            <summary>
            Determines whether the specified argument is not empty.
            </summary>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or empty.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.Nullable{System.Guid}}})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or empty.
            </summary>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or empty.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrWhitespace(System.Linq.Expressions.Expression{System.Func{System.String}})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or a whitespace.
            </summary>
            <param name="expression">The expression.</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or a whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotNullOrEmptyArray(System.Linq.Expressions.Expression{System.Func{System.Array}})">
            <summary>
            Determines whether the specified argument is not <c>null</c> or an empty array (.Length == 0).
            </summary>
            <param name="expression">The expression</param>
            <exception cref="T:System.ArgumentException">If <paramref name="expression" /> value is <c>null</c> or an empty array.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOutOfRange``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,``0,System.Func{``0,``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument is not out of range.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="maximumValue">The maximum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOutOfRange``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,``0)">
            <summary>
            Determines whether the specified argument is not out of range.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="maximumValue">The maximum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsMinimal``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,System.Func{``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument has a minimum value.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="minimumValue">The minimum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsMinimal``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Determines whether the specified argument has a minimum value.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="minimumValue">The minimum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsMaximum``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,System.Func{``0,``0,System.Boolean})">
            <summary>
            Determines whether the specified argument has a maximum value.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="maximumValue">The maximum value.</param>
            <param name="validation">The validation function to call for validation.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validation" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsMaximum``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Determines whether the specified argument has a maximum value.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="maximumValue">The maximum value.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="expression" /> value is out of range.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsInterface``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type)">
            <summary>
            Checks whether the specified <paramref name="expression" /> value implements the specified <paramref name="interfaceType" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression.</param>
            <param name="interfaceType">The type of the interface to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value does not implement the <paramref name="interfaceType" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.ImplementsOneOfTheInterfaces``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type[])">
            <summary>
            Checks whether the specified <paramref name="expression" /> value implements at least one of the specified <paramref name="interfaceTypes" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression.</param>
            <param name="interfaceTypes">The types of the interfaces to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value does not implement at least one of the <paramref name="interfaceTypes" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfType``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type)">
            <summary>
            Checks whether the specified <paramref name="expression" /> value is of the specified <paramref name="requiredType" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression.</param>
            <param name="requiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value is not of type <paramref name="requiredType" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsOfOneOfTheTypes``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type[])">
            <summary>
            Checks whether the specified <paramref name="expression" /> value is of at least one of the specified <paramref name="requiredTypes" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression type.</param>
            <param name="requiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="requiredTypes" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value is not at least one of the <paramref name="requiredTypes" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfType``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type)">
            <summary>
            Checks whether the specified <paramref name="expression" /> value is not of the specified <paramref name="notRequiredType" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression.</param>
            <param name="notRequiredType">The type to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value is of type <paramref name="notRequiredType" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotOfOneOfTheTypes``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Type[])">
            <summary>
            Checks whether the specified <paramref name="expression" /> value is not of any of the specified <paramref name="notRequiredTypes" />.
            </summary>
            <typeparam name="T">The type of the value.</typeparam>
            <param name="expression">The expression.</param>
            <param name="notRequiredTypes">The types to check for.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> value is of one of the <paramref name="notRequiredTypes" />.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsNotMatch(System.Linq.Expressions.Expression{System.Func{System.String}},System.String,System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Determines whether the specified argument doesn't match with a given pattern.
            </summary>
            <param name="expression">The expression.</param>
            <param name="pattern">The pattern.</param>
            <param name="regexOptions">The regular expression options.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsMatch(System.Linq.Expressions.Expression{System.Func{System.String}},System.String,System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Determines whether the specified argument match with a given pattern.
            </summary>
            <param name="expression">The expression.</param>
            <param name="pattern">The pattern.</param>
            <param name="regexOptions">The regular expression options.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="pattern" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Func{``0,System.Boolean})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="validation">The validation function.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation" /> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Func{System.Boolean})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="validation">The validation function.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation"/> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression"/> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression"/>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Boolean)">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="validation">The validation result.</param>
            <exception cref="T:System.ArgumentException">If the <paramref name="validation" /> code returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Argument.IsValid``1(System.Linq.Expressions.Expression{System.Func{``0}},Catel.Data.IValueValidator{``0})">
            <summary>
            Determines whether the specified argument is valid.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="expression">The expression.</param>
            <param name="validator">The validator.</param>
            <exception cref="T:System.ArgumentException">If the <see cref="M:Catel.Data.IValueValidator`1.IsValid(`0)" /> of  <paramref name="validator" /> returns <c>false</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="expression" /> body is not of type <see cref="T:System.Linq.Expressions.MemberExpression" />.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="expression" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Argument.ParameterInfo`1">
            <summary>
            The parameter info.
            </summary>
        </member>
        <member name="M:Catel.Argument.ParameterInfo`1.#ctor(System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Argument.ParameterInfo`1" /> class.
            </summary>
            <param name="name">The parameter name.</param>
            <param name="value">The value.</param>
        </member>
        <member name="P:Catel.Argument.ParameterInfo`1.Value">
            <summary>
            Gets the value.
            </summary>
        </member>
        <member name="P:Catel.Argument.ParameterInfo`1.Name">
            <summary>
            Gets the name.
            </summary>
        </member>
        <member name="T:Catel.ExcludeReason">
            <summary>
            Use this enum to provide a valid reason for excluding coverage. Expand this enum 
            if you encounter a new type of reason. 
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.StaticSingletonWillOnlyBeCoveredInProductionScenario">
            <summary>
            Static singleton will only be covered in production scenarios.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.ConstructorWillOnlyBeCoveredInProductionScenario">
            <summary>
            Constructor will only be covered in production scenarios. 
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.MethodWillOnlyBeCoveredInProductionScenario">
            <summary>
            Method will only be covered in production scenarios. 
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.ToBeImplementedInFutureSprint">
            <summary>
            Must be implemented in a future sprint.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.PropertyWillBeSubstitutedInTest">
            <summary>
            Property will be substituted during a test.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.ContainsCodeWhichCannotBeSubstitutedInTest">
            <summary>
            Contains code which cannot be substituted in a test.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.InterfaceMethodWillNotBeImplementedInThisClass">
            <summary>
            Interface will not be implemented in this class.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.TestCode">
            <summary>
            This is test code, and therefore needs to be excluded.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.ClassWillOnlyBeCoveredInProductionScenario">
            <summary>
            Class will only be covered in production scenarios. 
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.DataType">
            <summary>
            This is a data type, and therefore needs to be excluded.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.GeneratedClass">
            <summary>
            This is a generated class, and therefore needs to be excluded.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.NativeMethodWillBeCoveredInNativeUnitTests">
            <summary>
            Native method will be covered in native unit tests.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.Deprecated">
            <summary>
            This object is deprecated, no need to test it any longer.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.DebugLogging">
            <summary>
            This is debug logging, and therefore needs to be excluded.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.NonUsedAbstractImplementation">
            <summary>
            Object is a non-used abstract implementation.
            </summary>
        </member>
        <member name="F:Catel.ExcludeReason.Attribute">
            <summary>
            Attribute is not covered by unit tests.
            </summary>
        </member>
        <member name="T:Catel.CoverageExcludeAttribute">
            <summary>
            Use this to skip coverage for the method which is decorated with this 
            attribute. Use with care! 
            Do not put this attribute in a specific namespace.
            </summary>
        </member>
        <member name="F:Catel.CoverageExcludeAttribute._reason">
            <summary>
            Reason why the object is excluded from coverage.
            </summary>
        </member>
        <member name="M:Catel.CoverageExcludeAttribute.#ctor(Catel.ExcludeReason)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.CoverageExcludeAttribute"/> class.
            </summary>
            <param name="reason">The reason.</param>
        </member>
        <member name="M:Catel.CoverageExcludeAttribute.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this instance.
            </returns>
        </member>
        <member name="T:Catel.Caching.CacheStorage`2">
            <summary>
            The cache storage.
            </summary>
            <typeparam name="TKey">The key type.</typeparam>
            <typeparam name="TValue">The value type.</typeparam>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._storeNullValues">
            <summary>
            Determines whether the cache storage can store null values.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._dictionary">
            <summary>
            The dictionary.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._syncObj">
            <summary>
            The synchronization object.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._syncObjs">
            <summary>
            The synchronization objects.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._expirationTimer">
            <summary>
            The timer that is being executed to invalidate the cache.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._expirationTimerInterval">
            <summary>
            The expiration timer interval.
            </summary>
        </member>
        <member name="F:Catel.Caching.CacheStorage`2._checkForExpiredItems">
            <summary>
            Determines whether the cache storage can check for expired items.
            </summary>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.#ctor(System.Func{Catel.Caching.Policies.ExpirationPolicy},System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.CacheStorage`2" /> class.
            </summary>
            <param name="defaultExpirationPolicyInitCode">The default expiration policy initialization code.</param>
            <param name="storeNullValues">Allow store null values on the cache.</param>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.#ctor(System.Func{Catel.Caching.Policies.ExpirationPolicy},System.Boolean,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.CacheStorage`2" /> class.
            </summary>
            <param name="defaultExpirationPolicyInitCode">The default expiration policy initialization code.</param>
            <param name="storeNullValues">Allow store null values on the cache.</param>
            <param name="equalityComparer">The equality comparer.</param>
        </member>
        <member name="P:Catel.Caching.CacheStorage`2.Item(`0)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>The value associated with the specified key, or default value for the type of the value if the key do not exists.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Caching.CacheStorage`2.Keys">
            <summary>
            Gets the keys so it is possible to enumerate the cache.
            </summary>
            <value>The keys.</value>
        </member>
        <member name="P:Catel.Caching.CacheStorage`2.ExpirationTimerInterval">
            <summary>
            Gets or sets the expiration timer interval.
            <para />
            The default value is <c>TimeSpan.FromSeconds(1)</c>.
            </summary>
            <value>The expiration timer interval.</value>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Get(`0)">
            <summary>
            Gets the value associated with the specified key
            </summary>
            <param name="key">The key of the value to get.</param>
            <returns>The value associated with the specified key, or default value for the type of the value if the key do not exists.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Contains(`0)">
            <summary>
            Determines whether the cache contains a value associated with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the cache contains an element with the specified key; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{System.Threading.Tasks.Task{`1}},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{System.Threading.Tasks.Task{`1}},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{`1},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Add(`0,`1,System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Add(`0,`1,Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Remove(`0,System.Action)">
            <summary>
            Removes an item from the cache.
            </summary>
            <param name="key">The key.</param>
            <param name="action">The action that need to be executed in synchronization with the item cache removal.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.Clear">
            <summary>
            Clears all the items currently in the cache.
            </summary>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.RemoveExpiredItems">
            <summary>
            Removes the expired items from the cache.
            </summary>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.GetLockByKey(`0)">
            <summary>
            Gets the lock by key.
            </summary>
            <param name="key">The key.</param>
            <returns>The lock object.</returns>
        </member>
        <member name="M:Catel.Caching.CacheStorage`2.OnTimerElapsed(System.Object)">
            <summary>
            Called when the timer to clean up the cache elapsed.
            </summary>
            <param name="state">The timer state.</param>
        </member>
        <member name="T:Catel.Caching.CacheStorageValueInfo`1">
            <summary>
            Value info for the cache storage.
            </summary>
            <typeparam name="TValue">
            The value type.
            </typeparam>
        </member>
        <member name="M:Catel.Caching.CacheStorageValueInfo`1.#ctor(`0,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.CacheStorageValueInfo`1" /> class.
            </summary>
            <param name="value">The value.</param>
            <param name="expiration">The expiration.</param>
        </member>
        <member name="M:Catel.Caching.CacheStorageValueInfo`1.#ctor(`0,Catel.Caching.Policies.ExpirationPolicy)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.CacheStorageValueInfo`1" /> class.
            </summary>
            <param name="value">The value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
        </member>
        <member name="P:Catel.Caching.CacheStorageValueInfo`1.Value">
            <summary>
            Gets the value.
            </summary>
            <value>The value.</value>
        </member>
        <member name="P:Catel.Caching.CacheStorageValueInfo`1.CanExpire">
            <summary>
            Gets a value indicating whether this value can expire.
            </summary>
            <value><c>true</c> if this value can expire; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Caching.CacheStorageValueInfo`1.IsExpired">
            <summary>
            Gets a value indicating whether this value is expired.
            </summary>
            <value><c>true</c> if this value is expired; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.Caching.ICacheStorage`2">
            <summary>
            The cache storage interface.
            </summary>
            <typeparam name="TKey">The key type.</typeparam>
            <typeparam name="TValue">The value type.</typeparam>
        </member>
        <member name="P:Catel.Caching.ICacheStorage`2.Item(`0)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>The value associated with the specified key, or default value for the type of the value if the key do not exists.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Caching.ICacheStorage`2.Keys">
            <summary>
            Gets the keys so it is possible to enumerate the cache.
            </summary>
            <value>The keys.</value>
        </member>
        <member name="P:Catel.Caching.ICacheStorage`2.ExpirationTimerInterval">
            <summary>
            Gets or sets the expiration timer interval.
            <para />
            The default value is <c>TimeSpan.FromSeconds(1)</c>.
            </summary>
            <value>The expiration timer interval.</value>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Get(`0)">
            <summary>
            Gets the value associated with the specified key
            </summary>
            <param name="key">The key of the value to get.</param>
            <returns>The value associated with the specified key, or default value for the type of the value if the key do not exists.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Contains(`0)">
            <summary>
            Determines whether the cache contains a value associated with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the cache contains an element with the specified key; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy</param>
            <param name="override">Indicates if the key exists the value will be overridden</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Add(`0,`1,System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Remove(`0,System.Action)">
            <summary>
            Removes an item from the cache.
            </summary>
            <param name="key">The key.</param>
            <param name="action">The action that need to be executed in synchronization with the item cache removal.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Add(`0,`1,Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <param name="expirationPolicy">The expiration policy</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.Clear">
            <summary>
            Clears all the items currently in the cache.
            </summary>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{`1},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{System.Threading.Tasks.Task{`1}},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},Catel.Caching.Policies.ExpirationPolicy,System.Boolean)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="expirationPolicy">The expiration policy.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.ICacheStorage`2.GetFromCacheOrFetchAsync(`0,System.Func{System.Threading.Tasks.Task{`1}},System.Boolean,System.TimeSpan)">
            <summary>
            Adds a value to the cache associated with to a key asynchronously.
            <para />
            Note that this is a wrapper around <see cref="M:Catel.Caching.CacheStorage`2.GetFromCacheOrFetch(`0,System.Func{`1},System.Boolean,System.TimeSpan)"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="code">The deferred initialization code of the value.</param>
            <param name="override">Indicates if the key exists the value will be overridden.</param>
            <param name="expiration">The timespan in which the cache item should expire when added.</param>
            <returns>The instance initialized by the <paramref name="code" />.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="key" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Caching.Policies.AbsoluteExpirationPolicy">
            <summary>
            The cache item will expire on the absolute expiration date time.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.AbsoluteExpirationPolicy.#ctor(System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.AbsoluteExpirationPolicy"/> class.
            </summary>
            <param name="absoluteExpirationDateTime">
            The expiration date time.
            </param>
        </member>
        <member name="M:Catel.Caching.Policies.AbsoluteExpirationPolicy.#ctor(System.DateTime,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.AbsoluteExpirationPolicy"/> class.
            </summary>
            <param name="absoluteExpirationDateTime">
            The expiration date time.
            </param>
            <param name="canReset">
            The can reset.
            </param>
        </member>
        <member name="P:Catel.Caching.Policies.AbsoluteExpirationPolicy.AbsoluteExpirationDateTime">
            <summary>
            Gets or sets the expiration date time.
            </summary>
        </member>
        <member name="P:Catel.Caching.Policies.AbsoluteExpirationPolicy.IsExpired">
            <summary>
            Gets a value indicating whether is expired.
            </summary>
        </member>
        <member name="T:Catel.Caching.Policies.CompositeExpirationPolicy">
            <summary>
            The composite expiration policy.
            </summary>
        </member>
        <member name="F:Catel.Caching.Policies.CompositeExpirationPolicy._expirationPolicies">
            <summary>
            The expiration policies.
            </summary>
        </member>
        <member name="F:Catel.Caching.Policies.CompositeExpirationPolicy._synchronizationContext">
            <summary>
            The synchronization context.
            </summary>
        </member>
        <member name="F:Catel.Caching.Policies.CompositeExpirationPolicy._expiresOnlyIfAllPoliciesExpires">
            If <c>true</c> indicates that the cache will expires only if <b>All</b> policies of the composition expires, 
            otherwise the cache will expires if <b>Any</b> policy does.
        </member>
        <member name="M:Catel.Caching.Policies.CompositeExpirationPolicy.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.CompositeExpirationPolicy"/> class.
            </summary>
            <param name="expiresOnlyIfAllPoliciesExpires">
            If <c>true</c> indicates that the cache will expires only if <b>All</b> policies of the composition expires, 
            otherwise the cache will expires if <b>Any</b> policy does.
            </param>
        </member>
        <member name="P:Catel.Caching.Policies.CompositeExpirationPolicy.CanReset">
            <summary>
            Gets a value indicating whether can reset.
            </summary>
        </member>
        <member name="P:Catel.Caching.Policies.CompositeExpirationPolicy.IsExpired">
            <summary>
            Gets a value indicating whether is expired.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.CompositeExpirationPolicy.OnReset">
            <summary>
            Called when the policy is resetting.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.CompositeExpirationPolicy.Add(Catel.Caching.Policies.ExpirationPolicy)">
            <summary>
            Adds an expiration policy to the composition.
            </summary>
            <param name="expirationPolicy">
            The expiration policy.
            </param>
            <returns>
            The <see cref="T:Catel.Caching.Policies.CompositeExpirationPolicy"/>.
            </returns>
        </member>
        <member name="T:Catel.Caching.Policies.CustomExpirationPolicy">
            <summary>
            The custom expiration policy.
            </summary>
        </member>
        <member name="F:Catel.Caching.Policies.CustomExpirationPolicy._isExpiredFunc">
            <summary>
            The function to check if the policy is expired.
            </summary>
        </member>
        <member name="F:Catel.Caching.Policies.CustomExpirationPolicy._resetAction">
            <summary>
             The action that will be executed if the item is read before expiration.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.CustomExpirationPolicy.#ctor(System.Func{System.Boolean},System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.CustomExpirationPolicy"/> class.
            </summary>
            <param name="isExpiredFunc">
            The function to check if the policy is expired.
            </param>
            <param name="resetAction">
            The action that will be executed if the item is read before expiration.
            </param>
        </member>
        <member name="P:Catel.Caching.Policies.CustomExpirationPolicy.IsExpired">
            <summary>
            Gets a value indicating whether is expired.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.CustomExpirationPolicy.OnReset">
            <summary>
            Called when the policy is resetting.
            </summary>
        </member>
        <member name="T:Catel.Caching.Policies.DurationExpirationPolicy">
            <summary>
            The cache item will expire using the duration to calculate the absolute expiration from now.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.DurationExpirationPolicy.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.DurationExpirationPolicy"/> class.
            </summary>
            <param name="durationTimeSpan">
            The expiration.
            </param>
        </member>
        <member name="M:Catel.Caching.Policies.DurationExpirationPolicy.#ctor(System.TimeSpan,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.DurationExpirationPolicy"/> class.
            </summary>
            <param name="durationTimeSpan">
            The expiration.
            </param>
            <param name="canReset">
            The can reset.
            </param>
        </member>
        <member name="P:Catel.Caching.Policies.DurationExpirationPolicy.DurationTimeSpan">
            <summary>
            Gets or sets the expiration.
            </summary>
        </member>
        <member name="T:Catel.Caching.Policies.ExpirationPolicy">
            <summary>
            The expiration policy.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.ExpirationPolicy" /> class.
            </summary>
            <param name="canReset">The can reset.</param>
        </member>
        <member name="P:Catel.Caching.Policies.ExpirationPolicy.IsExpired">
            <summary>
            Gets a value indicating whether the value with this policy attached is expired.
            </summary>
        </member>
        <member name="P:Catel.Caching.Policies.ExpirationPolicy.CanReset">
            <summary>
            Gets a value indicating whether the value with this policy can be reset.
            </summary>
        </member>
        <member name="P:Catel.Caching.Policies.ExpirationPolicy.IsResting">
            <summary>
            Gets a value indicating whether is resting.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.Absolute(System.DateTime,System.Boolean)">
            <summary>
            Creates a <see cref="T:Catel.Caching.Policies.AbsoluteExpirationPolicy" /> instance.
            </summary>
            <param name="absoluteExpirationDateTime">The absolute expiration <see cref="T:System.DateTime" />.</param>
            <param name="force">Indicates whether the policy will be created even if the policy will be created expired.</param>
            <returns>The <see cref="T:Catel.Caching.Policies.AbsoluteExpirationPolicy" /> or <c>null</c> if <paramref name="absoluteExpirationDateTime" /> is in the pass.</returns>
            <remarks>The cache item will expire on the absolute expiration date time.</remarks>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.Duration(System.TimeSpan,System.Boolean)">
            <summary>
            Creates a <see cref="T:Catel.Caching.Policies.DurationExpirationPolicy" /> instance.
            </summary>
            <param name="durationTimeSpan">The duration <see cref="T:System.TimeSpan" />.</param>
            <param name="force">Indicates whether the policy will be created even if the policy will be created expired.</param>
            <returns>The <see cref="T:Catel.Caching.Policies.DurationExpirationPolicy" /> or <c>null</c> if <paramref name="durationTimeSpan" /> is less than 0 ticks.</returns>
            <remarks>The cache item will expire using the duration to calculate the absolute expiration from now.</remarks>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.Sliding(System.TimeSpan,System.Boolean)">
            <summary>
            Creates a <see cref="T:Catel.Caching.Policies.SlidingExpirationPolicy" /> instance.
            </summary>
            <param name="durationTimeSpan">The duration <see cref="T:System.TimeSpan" />.</param>
            <param name="force">Indicates whether the policy will be created even if the policy will be created expired.</param>
            <returns>The <see cref="T:Catel.Caching.Policies.SlidingExpirationPolicy" /> or <c>null</c> if <paramref name="durationTimeSpan" /> is less than 0 ticks.</returns>
            <remarks>The cache item will expire using the duration property as the sliding expiration.</remarks>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.Custom(System.Func{System.Boolean},System.Action,System.Boolean)">
            <summary>
            Creates a <see cref="T:Catel.Caching.Policies.CustomExpirationPolicy" /> instance.
            </summary>
            <param name="isExpiredFunc">The function to check if the policy is expired.</param>
            <param name="resetAction">The action that will be executed if the item is read before expiration.</param>
            <param name="force">Indicates whether the policy will be created even if the policy will be created expired.</param>
            <returns>The <see cref="T:Catel.Caching.Policies.CustomExpirationPolicy" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="isExpiredFunc" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.Reset">
            <summary>
            Resets the expiration policy.
            </summary>
            <exception cref="T:System.InvalidOperationException">If the policy do not support this operation.</exception>
        </member>
        <member name="M:Catel.Caching.Policies.ExpirationPolicy.OnReset">
            <summary>
            Called when the policy is resetting.
            </summary>
        </member>
        <member name="T:Catel.Caching.Policies.SlidingExpirationPolicy">
            <summary>
            The cache item will expire using the duration property as the sliding expiration.
            </summary>
        </member>
        <member name="M:Catel.Caching.Policies.SlidingExpirationPolicy.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Caching.Policies.SlidingExpirationPolicy"/> class.
            </summary>
            <param name="durationTimeSpan">
            The expiration.
            </param>
        </member>
        <member name="M:Catel.Caching.Policies.SlidingExpirationPolicy.OnReset">
            <summary>
            The reset.
            </summary>
        </member>
        <member name="T:Catel.Collections.CollectionExtensions">
            <summary>
            Extensions for the <see cref="T:System.Collections.ICollection"/> and <see cref="T:System.Collections.ObjectModel.Collection`1"/> classes.
            </summary>
        </member>
        <member name="F:Catel.Collections.CollectionExtensions.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.CanMoveItemUp(System.Collections.IList,System.Object)">
            <summary>
            Determines whether the item can be moved up in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="item">The item to check.</param>
            <returns><c>true</c> if the item can be moved up in the list; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.MoveItemUp(System.Collections.IList,System.Object)">
            <summary>
            Moves the specified item up in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="item">The item to move up.</param>
            <returns><c>true</c> if the item has successfully been moved up; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="item"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.CanMoveItemDown(System.Collections.IList,System.Object)">
            <summary>
            Determines whether the item can be moved down in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="item">The item to check.</param>
            <returns><c>true</c> if the item can be moved down in the list; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.MoveItemUpByIndex(System.Collections.IList,System.Int32)">
            <summary>
            Moves the item at the specified index up in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="index">The index of the item to move up.</param>
            <returns><c>true</c> if the item has successfully been moved up; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> is smaller than 0 or larger than the list count.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.MoveItemDown(System.Collections.IList,System.Object)">
            <summary>
            Moves the specified item down in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="item">The item to move down.</param>
            <returns><c>true</c> if the item has successfully been moved down; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="item"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.MoveItemDownByIndex(System.Collections.IList,System.Int32)">
            <summary>
            Moves the item at the specified index down in the list.
            </summary>
            <param name="list">The list.</param>
            <param name="index">The index of the item to move down.</param>
            <returns><c>true</c> if the item has successfully been moved down; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> is smaller than 0 or larger than the list count.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.AddRange``1(System.Collections.ObjectModel.ObservableCollection{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Add an range of items to the specified <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/>.
            </summary>
            <typeparam name="T">Type of items within the observable collection.</typeparam>
            <param name="collection">The <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/>.</param>
            <param name="range">An range of items.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="range"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.ReplaceRange``1(System.Collections.ObjectModel.ObservableCollection{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Replaces the whole range of the specified <paramref name="collection"/>. This is done by internally
            calling <see cref="M:System.Collections.ObjectModel.Collection`1.Clear"/> and finally <see cref="M:Catel.Collections.CollectionExtensions.AddRange``1(System.Collections.ObjectModel.ObservableCollection{``0},System.Collections.Generic.IEnumerable{``0})"/>.
            </summary>
            <typeparam name="T">Type of items within the observable collection.</typeparam>
            <param name="collection">The collection.</param>
            <param name="range">The range of items to add to the observable collection.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="range"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.RemoveFirst(System.Collections.IList)">
            <summary>
            Removes the first entry from the list.
            <para />
            When there are no items in the list, this method will silently exit.
            </summary>
            <param name="list">The list.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.RemoveLast(System.Collections.IList)">
            <summary>
            Removes the last entry from the list.
            <para />
            When there are no items in the list, this method will silently exit.
            </summary>
            <param name="list">The list.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="list"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            The for each extension on <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            </summary>
            <typeparam name="TItem">The type of the item.</typeparam>
            <param name="collection">The collection.</param>
            <param name="action">The action.</param>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.ToArray(System.Collections.IEnumerable,System.Type)">
            <summary>
            Converts the collection to an array.
            </summary>
            <param name="collection">The collection.</param>
            <param name="elementType">Type of the element.</param>
            <returns>Array.</returns>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.SynchronizeCollection``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)">
            <summary>
            Synchronizes the collection by adding / removing items that are in the new set.
            </summary>
            <typeparam name="T">The type of the collection item.</typeparam>
            <param name="existingSet">The existing set.</param>
            <param name="newSet">The new set.</param>
            <param name="updateExistingSet">if set to <c>true</c>, the existing set will be updated, otherwise a new collection will be created and the existing set will remain unchanged.</param>
            <returns>IEnumerable&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Collections.CollectionExtensions.Sort``1(System.Collections.Generic.IList{``0},System.Func{``0,``0,System.Int32})">
            <summary>
            Sorts the specified existing set.
            </summary>
            <typeparam name="T">The type of elements.</typeparam>
            <param name="existingSet">The existing set.</param>
            <param name="comparer">The comparer.</param>
        </member>
        <member name="T:Catel.Collections.DictionaryExtensions">
            <summary>
            Extensions for the <see cref="T:System.Collections.Generic.Dictionary`2"/> class.
            </summary>
        </member>
        <member name="M:Catel.Collections.DictionaryExtensions.AddRange``2(System.Collections.Generic.Dictionary{``0,``1},System.Collections.Generic.Dictionary{``0,``1},System.Boolean)">
            <summary>
            Adds all items from the source into the target dictionary.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="target">The target.</param>
            <param name="source">The source.</param>
            <param name="overwriteExisting">if set to <c>true</c>, existing items in the target dictionary will be overwritten.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Collections.DictionaryExtensions.AddItemIfNotEmpty``1(System.Collections.Generic.Dictionary{``0,System.String},``0,System.String)">
            <summary>
            Adds the specified value using the key if the value is not <c>null</c> or whitespace.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="dictionary">The dictionary.</param>
            <param name="key">The key.</param>
            <param name="value">The value to check and to add.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dictionary"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="key"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Collections.CollectionHelper">
            <summary>
            Collection helper class.
            </summary>
        </member>
        <member name="M:Catel.Collections.CollectionHelper.IsEqualTo(System.Collections.IEnumerable,System.Collections.IEnumerable)">
            <summary>
            Checks whether a collection is the same as another collection.
            </summary>
            <param name="listA">The list A.</param>
            <param name="listB">The list B.</param>
            <returns>
            True if the two collections contain all the same items in the same order.
            </returns>
        </member>
        <member name="T:Catel.Collections.ListDictionary`2">
            <summary>
            Implements <see cref="T:System.Collections.Generic.IDictionary`2"/> using a singly linked list. Recommended for collections that typically include fewer than 10 items.
            </summary>
            <typeparam name="TKey">The type of keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of values in the dictionary.</typeparam>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Collections.ListDictionary`2"/> class.
            </summary>
        </member>
        <member name="P:Catel.Collections.ListDictionary`2.Count">
            <summary>
            Gets the count.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="P:Catel.Collections.ListDictionary`2.IsReadOnly">
            <summary>
            Gets a value indicating whether this instance is read only.
            </summary>
            <value>
            <c>true</c> if this instance is read only; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Collections.ListDictionary`2.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <param name="key">The key of the element to get or set.</param>
            <returns>The element with the specified key.</returns>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and key is not found.</exception>
        </member>
        <member name="P:Catel.Collections.ListDictionary`2.Keys">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the keys of the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </summary>
            <value>
            An <see cref="T:System.Collections.Generic.ICollection`1"/> containing the keys of the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </value>
        </member>
        <member name="P:Catel.Collections.ListDictionary`2.Values">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the values in the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </summary>
            <value>
            An <see cref="T:System.Collections.Generic.ICollection`1"/> containing the values in the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </value>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.GetEnumerator">
            <summary>
             Returns an enumerator that iterates through the collection.
            </summary>
             <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Adds an item.
            </summary>
            <param name="item">The object to add.</param>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Clear">
            <summary>
            Removes all items.
            </summary>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:Catel.Collections.ListDictionary`2"/> contains a specific value.
            </summary>
            <param name="item">The object to locate.</param>
            <returns>true if item is found; otherwise, false.</returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements to an <see cref="T:System.Array"/>, starting at a particular System.Array index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </summary>
            <param name="item">The item.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Add(`0,`1)">
            <summary>
            Adds the specified key and value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.ContainsKey(`0)">
            <summary>
            Determines whether the dictionary contains key.
            </summary>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:Catel.Collections.ListDictionary`2"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Collections.ListDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.</param>
            <returns>true if the object contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="T:Catel.ComponentModel.DisplayNameAttribute">
            <summary>
            A custom implementation of the display name attribute that uses the <see cref="T:Catel.Services.ILanguageService"/>.
            </summary>
        </member>
        <member name="M:Catel.ComponentModel.DisplayNameAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ComponentModel.DisplayNameAttribute"/> class.
            </summary>
        </member>
        <member name="P:Catel.ComponentModel.DisplayNameAttribute.LanguageService">
            <summary>
            Gets or sets the language service. By default or when set to <c>null</c>, this property will resolve the language
            service from the default <see cref="T:Catel.IoC.IDependencyResolver"/>.
            </summary>
            <value>The language service.</value>
        </member>
        <member name="P:Catel.ComponentModel.DisplayNameAttribute.DisplayName">
            <summary>
            Gets the display name.
            </summary>
            <value>The display name.</value>
        </member>
        <member name="T:Catel.Configuration.ConfigurationService">
            <summary>
            Configuration service implementation that allows customization how configuration values
            are being used inside an application.
            <para />
            This default implementation writes to the
            </summary>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.#ctor(Catel.Runtime.Serialization.ISerializationManager,Catel.Services.IObjectConverterService)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Configuration.ConfigurationService" /> class.
            </summary>
            <param name="serializationManager">The serialization manager.</param>
            <param name="objectConverterService">The object converter service.</param>
        </member>
        <member name="E:Catel.Configuration.ConfigurationService.ConfigurationChanged">
            <summary>
            Occurs when the configuration has changed.
            </summary>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.SuspendNotifications">
            <summary>
            Suspends the notifications of this service until the returned object is disposed.
            </summary>
            <returns>IDisposable.</returns>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.GetValue``1(System.String,``0)">
            <summary>
            Gets the configuration value.
            </summary>
            <typeparam name="T">The type of the value to retrieve.</typeparam>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value. Will be returned if the value cannot be found.</param>
            <returns>The configuration value.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="key" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.SetValue(System.String,System.Object)">
            <summary>
            Sets the configuration value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.IsValueAvailable(System.String)">
            <summary>
            Determines whether the specified value is available.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the specified value is available; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.InitializeValue(System.String,System.Object)">
            <summary>
            Initializes the value by setting the value to the <paramref name="defaultValue" /> if the value does not yet exist.
            </summary>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.ValueExists(System.String)">
            <summary>
            Determines whether the specified key value exists in the configuration.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the value exists, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.GetValueFromStore(System.String)">
            <summary>
            Gets the value from the store.
            </summary>
            <param name="key">The key.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.SetValueToStore(System.String,System.String)">
            <summary>
            Sets the value to the store.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Catel.Configuration.ConfigurationService.GetFinalKey(System.String)">
            <summary>
            Gets the final key. This method allows customization of the key.
            </summary>
            <param name="key">The key.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.Configuration.DynamicConfiguration">
            <summary>
            Dynamic configuration.
            </summary>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.RegisterConfigurationKey(System.String)">
            <summary>
            Registers the configuration key.
            </summary>
            <param name="name">The name.</param>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.IsConfigurationKeyAvailable(System.String)">
            <summary>
            Determines whether the specified configuration key is available.
            </summary>
            <param name="name">The name.</param>
            <returns><c>true</c> if the specified configuration key is available; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.GetConfigurationValue(System.String)">
            <summary>
            Gets the configuration value.
            </summary>
            <param name="name">The name.</param>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.SetConfigurationValue(System.String,System.Object)">
            <summary>
            Sets the configuration value.
            </summary>
            <param name="name">The name.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.IsConfigurationValueSet(System.String)">
            <summary>
            Determines whether the specified property is set. If not, a default value should be returned.
            </summary>
            <param name="name">The name.</param>
            <returns><c>true</c> if the property is set; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Configuration.DynamicConfiguration.MarkConfigurationValueAsSet(System.String)">
            <summary>
            Marks the property as set at least once so it doesn't have a default value.
            </summary>
            <param name="name">The name.</param>
        </member>
        <member name="T:Catel.Configuration.DynamicConfigurationSerializerModifier">
            <summary>
            Dynamic configuration serializer modifier.
            </summary>
        </member>
        <member name="M:Catel.Configuration.DynamicConfigurationSerializerModifier.#ctor(Catel.Runtime.Serialization.ISerializationManager)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Configuration.DynamicConfigurationSerializerModifier"/> class.
            </summary>
            <param name="serializationManager">The serialization manager.</param>
        </member>
        <member name="M:Catel.Configuration.DynamicConfigurationSerializerModifier.OnSerializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Configuration.DynamicConfigurationSerializerModifier.OnDeserializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="T:Catel.Configuration.ConfigurationChangedEventArgs">
            <summary>
            The configuration changed event args class.
            </summary>
        </member>
        <member name="M:Catel.Configuration.ConfigurationChangedEventArgs.#ctor(System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Configuration.ConfigurationChangedEventArgs"/> class.
            </summary>
            <param name="key">The key.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="P:Catel.Configuration.ConfigurationChangedEventArgs.Key">
            <summary>
            Gets the key.
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:Catel.Configuration.ConfigurationChangedEventArgs.NewValue">
            <summary>
            Gets the new value.
            </summary>
            <value>The new value.</value>
        </member>
        <member name="T:Catel.Configuration.DynamicConfigurationExtensions">
            <summary>
            Extension methods for dynamic configuration.
            </summary>
        </member>
        <member name="M:Catel.Configuration.DynamicConfigurationExtensions.GetConfigurationValue``1(Catel.Configuration.DynamicConfiguration,System.String)">
            <summary>
            Gets the configuration value.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="dynamicConfiguration">The dynamic configuration.</param>
            <param name="name">The name.</param>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.Configuration.DynamicConfigurationExtensions.GetConfigurationValue``1(Catel.Configuration.DynamicConfiguration,System.String,``0)">
            <summary>
            Gets the configuration value.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="dynamicConfiguration">The dynamic configuration.</param>
            <param name="name">The name.</param>
            <param name="defaultValue">The default value if the configuration value is not of type TValue.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.Configuration.IConfigurationService">
            <summary>
            Configuration service implementation that allows customization how configuration values
            are being used inside an application.
            </summary>
        </member>
        <member name="E:Catel.Configuration.IConfigurationService.ConfigurationChanged">
            <summary>
            Occurs when the configuration has changed.
            </summary>
        </member>
        <member name="M:Catel.Configuration.IConfigurationService.SuspendNotifications">
            <summary>
            Suspends the notifications of this service until the returned object is disposed.
            </summary>
            <returns>IDisposable.</returns>
        </member>
        <member name="M:Catel.Configuration.IConfigurationService.GetValue``1(System.String,``0)">
            <summary>
            Gets the configuration value.
            </summary>
            <typeparam name="T">The type of the value to retrieve.</typeparam>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value. Will be returned if the value cannot be found.</param>
            <returns>The configuration value.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="key" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.IConfigurationService.SetValue(System.String,System.Object)">
            <summary>
            Sets the configuration value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.IConfigurationService.IsValueAvailable(System.String)">
            <summary>
            Determines whether the specified value is available.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the specified value is available; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Configuration.IConfigurationService.InitializeValue(System.String,System.Object)">
            <summary>
            Initializes the value by setting the value to the <paramref name="defaultValue" /> if the value does not yet exist.
            </summary>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="key"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.CoreModule">
            <summary>
            Core module which allows the registration of default services in the service locator.
            </summary>
        </member>
        <member name="M:Catel.CoreModule.Initialize(Catel.IoC.IServiceLocator)">
            <summary>
            Initializes the specified service locator.
            </summary>
            <param name="serviceLocator">The service locator.</param>
        </member>
        <member name="T:Catel.Data.ExcludeFromValidationAttribute">
            <summary>
            Attribute that can be used to exclude properties from validation.
            </summary>
        </member>
        <member name="T:Catel.Data.ValidateModelAttribute">
            <summary>
            Attribute to define custom validation at class level for all classes that derive from <see cref="T:Catel.Data.ModelBase"/>.
            <para />
            This attribute follows a naming convention. If 
            </summary>
        </member>
        <member name="M:Catel.Data.ValidateModelAttribute.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidateModelAttribute"/> class.
            </summary>
            <param name="validatorType">Type of the validator.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validatorType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.ValidateModelAttribute.ValidatorType">
            <summary>
            Gets the type of the validator.
            </summary>
            <value>The type of the validator.</value>
        </member>
        <member name="T:Catel.Data.AttributeValidatorProvider">
            <summary>
            Validator provider that provides the validator based on attributes on models.
            </summary>
        </member>
        <member name="M:Catel.Data.AttributeValidatorProvider.GetValidator(System.Type)">
            <summary>
            Provides an access point to allow a custom implementation in order to retrieve the available validator for the specified type.
            </summary>
            <param name="targetType">The target type.</param>
            <returns>The <see cref="T:Catel.Data.IValidator" /> for the specified type or <c>null</c> if no validator is available for the specified type.</returns>
        </member>
        <member name="T:Catel.Data.CatelTypeInfo">
            <summary>
            Class containing all information about a Catel type (such as properties).
            </summary>
        </member>
        <member name="F:Catel.Data.CatelTypeInfo.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.CatelTypeInfo" /> class.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.CatelTypeInfo.Type">
            <summary>
            Gets the type.
            </summary>
            <value>The type.</value>
        </member>
        <member name="P:Catel.Data.CatelTypeInfo.IsRegisterPropertiesCalled">
            <summary>
            Gets a value indicating whether the <see cref="M:Catel.Data.CatelTypeInfo.RegisterProperties"/> method has been called at least once.
            </summary>
            <value><c>true</c> if the <see cref="M:Catel.Data.CatelTypeInfo.RegisterProperties"/> method has been called at least once; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.GetCatelProperties">
            <summary>
            Gets the Catel properties.
            </summary>
            <returns>Dictionary containing the Catel properties.</returns>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.GetNonCatelProperties">
            <summary>
            Gets the non-Catel properties.
            </summary>
            <returns>Dictionary containing the non-Catel properties.</returns>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.GetPropertyData(System.String)">
            <summary>
            Gets the property data.
            </summary>
            <param name="name">The name of the property.</param>
            <returns>The <see cref="T:Catel.Data.PropertyData"/> of the requested property.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.IsPropertyRegistered(System.String)">
            <summary>
            Returns whether a specific property is registered.
            </summary>
            <param name="name">The name of the property.</param>
            <returns>
            True if the property is registered, otherwise false.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.RegisterProperties">
            <summary>
            Registers all the properties for the specified type.
            <para/>
            This method can only be called once per type. The <see cref="T:Catel.Data.PropertyDataManager"/> caches
            whether it has already registered the properties once.
            </summary>
            <exception cref="T:System.InvalidOperationException">The properties are not declared correctly.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.RegisterProperty(System.String,Catel.Data.PropertyData)">
            <summary>
            Registers a property for a specific type.
            </summary>
            <param name="name">The name of the property.</param>
            <param name="propertyData">The property data.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyAlreadyRegisteredException">A property with the same name is already registered.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.UnregisterProperty(System.String)">
            <summary>
            Unregisters a property for a specific type.
            </summary>
            <param name="name">The name of the property.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.FindNonCatelProperties(System.Type)">
            <summary>
            Finds the non catel properties.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of <see cref="T:System.Reflection.PropertyInfo"/> elements found as properties.</returns>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.FindCatelProperties(System.Type)">
            <summary>
            Finds the properties that represent a <see cref="T:Catel.Data.PropertyData"/>.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of <see cref="T:Catel.Data.PropertyData"/> elements found as properties.</returns>
            <exception cref="T:System.InvalidOperationException">One ore more properties are not declared correctly.</exception>
        </member>
        <member name="M:Catel.Data.CatelTypeInfo.FindCatelFields(System.Type)">
            <summary>
            Finds the fields that represent a <see cref="T:Catel.Data.PropertyData"/>.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of <see cref="T:Catel.Data.PropertyData"/> elements found as fields.</returns>
            <exception cref="T:System.InvalidOperationException">One ore more fields are not declared correctly.</exception>
        </member>
        <member name="T:Catel.Data.EventChangeType">
            <summary>
            Available event change types.
            </summary>
        </member>
        <member name="F:Catel.Data.EventChangeType.Property">
            <summary>
            Property change.
            </summary>
        </member>
        <member name="F:Catel.Data.EventChangeType.Collection">
            <summary>
            Collection change.
            </summary>
        </member>
        <member name="T:Catel.Data.ChangeNotificationWrapper">
            <summary>
            Wrapper for an object that implements the <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> and <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/>.
            <para />
            This class is thread-safe and uses weak events to prevent memory leaks.
            </summary>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ChangeNotificationWrapper"/> class.
            </summary>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.Data.ChangeNotificationWrapper.SupportsNotifyPropertyChanged">
            <summary>
            Gets a value indicating whether <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> is supported by the target object.
            </summary>
            <value><c>true</c> if <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> is supported by the target object; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ChangeNotificationWrapper.SupportsNotifyCollectionChanged">
            <summary>
            Gets a value indicating whether <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/> is supported by the target object.
            </summary>
            <value><c>true</c> if <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/> is supported by the target object; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ChangeNotificationWrapper.IsObjectAlive">
            <summary>
            Gets a value indicating whether the object is alive.
            </summary>
            <value><c>true</c> if the object is alive; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.IsUsefulForObject(System.Object)">
            <summary>
            Determines whether creating a <see cref="T:Catel.Data.ChangeNotificationWrapper"/> is useful for the specified object.
            <para />
            An object is considered usable when it implements either <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> or <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/>.
            </summary>
            <param name="obj">The object to check.</param>
            <returns><c>true</c> if it is useful to create a <see cref="T:Catel.Data.ChangeNotificationWrapper"/>; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.OnObjectPropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Called when the target object raises the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <remarks>
            This method is public to allow the usage of the <see cref="T:Catel.WeakEventListener"/>, do not call this method yourself.
            </remarks>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.OnObjectCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Called when the target object raises the <see cref="E:System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventArgs"/> instance containing the event data.</param>
            <remarks>
            This method is public to allow the usage of the <see cref="T:Catel.WeakEventListener"/>, do not call this method yourself.
            </remarks>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.OnObjectCollectionItemPropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Called when the target object raises the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/> event of an object
            that is located inside the collection being monitored.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <remarks>
            This method is public to allow the usage of the <see cref="T:Catel.WeakEventListener"/>, do not call this method yourself.
            </remarks>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.UnsubscribeFromAllEvents">
            <summary>
            Unsubscribes from all events.
            </summary>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.UpdateCollectionSubscriptions(System.Collections.ICollection)">
            <summary>
            Updates all the collection subscriptions.
            <para />
            This method is internally used when a notifiable collection raises the <see cref="F:System.Collections.Specialized.NotifyCollectionChangedAction.Reset"/> event.
            </summary>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.UnsubscribeNotifyChangedEvents(System.Object,System.Collections.ICollection)">
            <summary>
            Unsubscribes from the notify changed events.
            </summary>
            <param name="value">The object to unsubscribe from.</param>
            <param name="parentCollection">The parent collection.</param>
            <remarks>No need to check for weak events, they are unsubscribed automatically.</remarks>
        </member>
        <member name="M:Catel.Data.ChangeNotificationWrapper.SubscribeNotifyChangedEvents(System.Object,System.Collections.ICollection)">
            <summary>
            Subscribes to the notify changed events.
            </summary>
            <param name="value">The object to subscribe to.</param>
            <param name="parentCollection">If not <c>null</c>, this is a collection item which should use <see cref="M:Catel.Data.ChangeNotificationWrapper.OnObjectCollectionItemPropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)"/>.</param>
        </member>
        <member name="E:Catel.Data.ChangeNotificationWrapper.PropertyChanged">
            <summary>
            Occurs when the <see cref="E:Catel.Data.ChangeNotificationWrapper.PropertyChanged"/> event occurs on the target object.
            </summary>
        </member>
        <member name="E:Catel.Data.ChangeNotificationWrapper.CollectionItemPropertyChanged">
            <summary>
            Occurs when the <see cref="E:Catel.Data.ChangeNotificationWrapper.PropertyChanged"/> event occurs in the collection when the target object is a collection.
            </summary>
        </member>
        <member name="E:Catel.Data.ChangeNotificationWrapper.CollectionChanged">
            <summary>
            Occurs when the <see cref="E:Catel.Data.ChangeNotificationWrapper.CollectionChanged"/> event occurs on the target object.
            </summary>
        </member>
        <member name="T:Catel.Data.CompositeValidator">
            <summary>
            Allows the combination of several validators into a single validator. This class will combine all instances of the
            <see cref="T:Catel.Data.IValidator"/> class found for a type using the <see cref="T:Catel.Data.IValidatorProvider"/> into this single composite
            validator.
            </summary>
        </member>
        <member name="F:Catel.Data.CompositeValidator._validators">
            <summary>
            The validator list.
            </summary>
        </member>
        <member name="F:Catel.Data.CompositeValidator._synchronizationContext">
            <summary>
            The synchronization context.
            </summary>
        </member>
        <member name="M:Catel.Data.CompositeValidator.Add(Catel.Data.IValidator)">
            <summary>
            Adds the validator to this composite validator.
            </summary>
            <param name="validator">The validator to add.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.Remove(Catel.Data.IValidator)">
            <summary>
            Removes the validator from this composite validator.
            </summary>
            <param name="validator">The validator to remove.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.Contains(Catel.Data.IValidator)">
            <summary>
            Determines whether this composite validator contains the specified validator.
            </summary>
            <param name="validator">The validator.</param>
            <returns><c>true</c> if this composite validator contains the specified validator; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.Validate(System.Object,Catel.Data.ValidationContext)">
            <summary>
            Validates the specified instance and allows the manipulation of the whole validation context.
            <para />
            This method can be used to manipulate the whole validation context and the implementation of this is enough.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationContext">The validation context.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.BeforeValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before any validation is caused.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousFieldValidationResults">The previous field validation results.</param>
            <param name="previousBusinessRuleValidationResults">The previous business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousFieldValidationResults" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousBusinessRuleValidationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.BeforeValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its fields.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The previous validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.BeforeValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its business rules.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.ValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Validates the fields of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.ValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Validates the business rules of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.AfterValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after the specified instance has validated its business rules.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.AfterValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just after the specified instance has validated its fields.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidator.AfterValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after all validation has been executed.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="fieldValidationResults">The current field validation results.</param>
            <param name="businessRuleValidationResults">The current business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResults" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResults" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.CompositeValidatorProvider">
            <summary>
            Allows the combination of several validator providers into a single validator provider. 
            </summary>
            <remarks>
            This class can be used to unify instances of <see cref="T:Catel.Data.IValidatorProvider"/> into a single one and provides several 
            sources in order to retrieve <see cref="T:Catel.Data.IValidator"/> instances. 
            </remarks>
        </member>
        <member name="F:Catel.Data.CompositeValidatorProvider._syncObj">
            <summary>
            The locker.
            </summary>
        </member>
        <member name="F:Catel.Data.CompositeValidatorProvider._validatorProviders">
            <summary>
            The validator providers.
            </summary>
        </member>
        <member name="M:Catel.Data.CompositeValidatorProvider.Add(Catel.Data.IValidatorProvider)">
            <summary>
            Add the validator provider to this composite validator provider.
            </summary>
            <param name="validatorProvider">The validator provider.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="validatorProvider" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidatorProvider.Contains(Catel.Data.IValidatorProvider)">
            <summary>
            Determines whether this composite validator provider contains the specified validator provider.
            </summary>
            <param name="validatorProvider">The validator provider.</param>
            <returns><c>true</c> if this composite validator provider contains the specified validator; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validatorProvider" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.CompositeValidatorProvider.GetValidator(System.Type)">
            <summary>
            Gets a validator for the specified target type.
            </summary>
            <param name="targetType">The target type.</param>
            <returns>The <see cref="T:Catel.Data.IValidator" /> for the specified type or <c>null</c> if no validator is available for the specified type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="targetType" /> is <c>null</c>.</exception>
            <remarks>If there are more than once validator provider and they retrieve more than once validator all of these will be aggregated into a single <see cref="T:Catel.Data.CompositeValidator" />.</remarks>
        </member>
        <member name="M:Catel.Data.CompositeValidatorProvider.Remove(Catel.Data.IValidatorProvider)">
            <summary>
            Removes the validator provider from this composite validator provider.
            </summary>
            <param name="validatorProvider">The validator provider.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="validatorProvider" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.AdvancedPropertyChangedEventArgs">
            <summary>
            Property changed event args that are used when a property has changed. The event arguments contains both
            the original sender as the current sender of the event.
            <para />
            Best used in combination with <see cref="T:Catel.Data.IAdvancedNotifyPropertyChanged"/>.
            </summary>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,Catel.Data.AdvancedPropertyChangedEventArgs)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.String,System.Object,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.Object,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="originalSender">The original sender.</param>
            <param name="latestSender">The latest sender.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.Object,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="originalSender">The original sender.</param>
            <param name="latestSender">The latest sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.Object,System.String,System.Object,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="originalSender">The original sender.</param>
            <param name="latestSender">The latest sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangedEventArgs.#ctor(System.Object,System.Object,System.String,System.Object,System.Object,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/>"/> class.
            </summary>
            <param name="originalSender">The original sender.</param>
            <param name="latestSender">The latest sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
            <param name="isOldValueMeaningful">if set to <c>true</c>, the <paramref name="oldValue"/> has a meaningful value.</param>
            <param name="isNewValueMeaningful">if set to <c>true</c>, the <paramref name="newValue"/> has a meaningful value.</param>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.OriginalSender">
            <summary>
            Gets the original sender.
            </summary>
            <value>The original sender.</value>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.LatestSender">
            <summary>
            Gets the latest sender.
            </summary>
            <value>The latest sender.</value>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.OldValue">
            <summary>
            Gets the old value.
            </summary>
            <value>The old value.</value>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.NewValue">
            <summary>
            Gets the new value.
            </summary>
            <value>The new value.</value>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.IsOldValueMeaningful">
            <summary>
            Gets a value indicating whether the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.OldValue"/> has any meaning. Sometimes it is not possible
            to determine the old value in case a 3rd party class triggered the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/>
            event. In such a case, the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.OldValue"/> will be <c>null</c>, but this does not mean that the previous 
            value was <c>null</c>.
            </summary>
            <value>
            	<c>true</c> if the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.OldValue"/> has a meaningful value; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangedEventArgs.IsNewValueMeaningful">
            <summary>
            Gets a value indicating whether the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.NewValue"/> has any meaning. Sometimes it is not possible
            to determine the new value in case a 3rd party class triggered the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/>
            event. In such a case, the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.NewValue"/> will be <c>null</c>, but this does not mean that the new 
            value is <c>null</c>.
            </summary>
            <value>
            	<c>true</c> if the <see cref="P:Catel.Data.AdvancedPropertyChangedEventArgs.NewValue"/> has a meaningful value; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:Catel.Data.AdvancedPropertyChangingEventArgs">
            <summary>
            Class with additional control on the <see cref="T:System.ComponentModel.INotifyPropertyChanging"/> interface.
            </summary>
        </member>
        <member name="M:Catel.Data.AdvancedPropertyChangingEventArgs.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.PropertyChangingEventArgs" /> class.
            </summary>
            <param name="propertyName">The name of the property whose value is changing.</param>
        </member>
        <member name="P:Catel.Data.AdvancedPropertyChangingEventArgs.Cancel">
            <summary>
            Gets or sets a value indicating whether the setter action should be canceled.
            </summary>
            <value><c>true</c> if cancel; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.Data.ValidationEventArgs">
            <summary>
            The validation event args.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationEventArgs.#ctor(Catel.Data.IValidationContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationEventArgs"/> class.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="P:Catel.Data.ValidationEventArgs.ValidationContext">
            <summary>
            Gets the validation context.
            </summary>
            <value>The validation context.</value>
        </member>
        <member name="T:Catel.Data.InvalidPropertyException">
            <summary>
            Exception is When an invalid property is added to the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.InvalidPropertyException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.InvalidPropertyException"/> class.
            </summary>
            <param name="propertyName">Name of the property that caused the exception.</param>
        </member>
        <member name="P:Catel.Data.InvalidPropertyException.PropertyName">
            <summary>
            Gets or sets the property name.
            </summary>
            <value>The property name.</value>
        </member>
        <member name="T:Catel.Data.InvalidPropertyValueException">
            <summary>
            Exception when an the new value of a property of the <see cref="T:Catel.Data.ModelBase"/> class is invalid.
            </summary>
        </member>
        <member name="M:Catel.Data.InvalidPropertyValueException.#ctor(System.String,System.Type,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.InvalidPropertyValueException"/> class.
            </summary>
            <param name="propertyName">Name of the property that caused the exception.</param>
            <param name="expectedType">Expected type for the property.</param>
            <param name="actualType">Actual object value type.</param>
        </member>
        <member name="P:Catel.Data.InvalidPropertyValueException.PropertyName">
            <summary>
            Gets or sets the property name.
            </summary>
            <value>The property name.</value>
        </member>
        <member name="P:Catel.Data.InvalidPropertyValueException.ExpectedType">
            <summary>
            Gets or sets the expected type.
            </summary>
            <value>The expected type.</value>
        </member>
        <member name="P:Catel.Data.InvalidPropertyValueException.ActualType">
            <summary>
            Gets or sets the actual type.
            </summary>
            <value>The actual type.</value>
        </member>
        <member name="T:Catel.Data.PropertyAlreadyRegisteredException">
            <summary>
            Exception when a property is added to the <see cref="T:Catel.Data.ModelBase"/> class that is
            already registered by the object.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyAlreadyRegisteredException.#ctor(System.String,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyAlreadyRegisteredException"/> class.
            </summary>
            <param name="propertyName">Name of the property that caused the exception.</param>
            <param name="propertyType">Type of the object that is trying to register the property.</param>
        </member>
        <member name="P:Catel.Data.PropertyAlreadyRegisteredException.PropertyName">
            <summary>
            Gets or sets the property name.
            </summary>
            <value>The property name.</value>
        </member>
        <member name="P:Catel.Data.PropertyAlreadyRegisteredException.PropertyType">
            <summary>
            Gets or sets the property type for which the property is already registered.
            </summary>
            <value>The property type for which the property is already registered.</value>
        </member>
        <member name="T:Catel.Data.PropertyNotNullableException">
            <summary>
            Exception when a property value is set to null but when the type does not support
            null values.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyNotNullableException.#ctor(System.String,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyNotNullableException"/> class.
            </summary>
            <param name="propertyName">Name of the property that caused the exception.</param>
            <param name="propertyType">Type of the object that is trying to register the property.</param>
        </member>
        <member name="P:Catel.Data.PropertyNotNullableException.PropertyName">
            <summary>
            Gets or sets the property name.
            </summary>
            <value>The property name.</value>
        </member>
        <member name="P:Catel.Data.PropertyNotNullableException.PropertyType">
            <summary>
            Gets or sets the property type for which the property is already registered.
            </summary>
            <value>The property type for which the property is already registered.</value>
        </member>
        <member name="T:Catel.Data.PropertyNotRegisteredException">
            <summary>
            Exception when a property is used by the <see cref="T:Catel.Data.ModelBase"/> class that is
            not registered by the object.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyNotRegisteredException.#ctor(System.String,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyNotRegisteredException"/> class.
            </summary>
            <param name="propertyName">Name of the property that caused the exception.</param>
            <param name="objectType">Type of the object that is trying to register the property.</param>
        </member>
        <member name="P:Catel.Data.PropertyNotRegisteredException.PropertyName">
            <summary>
            Gets or sets the property name.
            </summary>
            <value>The property name.</value>
        </member>
        <member name="P:Catel.Data.PropertyNotRegisteredException.ObjectType">
            <summary>
            Gets or sets the object type for which the property is already registered.
            </summary>
            <value>The object type for which the property is already registered.</value>
        </member>
        <member name="T:Catel.Data.IModelValidationExtensions">
            <summary>
            Extensions for model validation.
            </summary>
        </member>
        <member name="M:Catel.Data.IModelValidationExtensions.GetValidationContext(Catel.Data.IModelValidation)">
            <summary>
            Gets the validation context of the specified model.
            </summary>
            <param name="model">The model.</param>
            <returns>The validation context.</returns>
        </member>
        <member name="M:Catel.Data.IModelValidationExtensions.AddBusinessRuleValidationResult(Catel.Data.IModelValidation,Catel.Data.IBusinessRuleValidationResult,System.Boolean)">
            <summary>
            Adds the business rule validation result.
            <para />
            This method is great to add asynchronous validation.
            </summary>
            <param name="modelValidation">The model validation.</param>
            <param name="businessRuleValidationResult">The business rule validation result.</param>
            <param name="validate">if set to <c>true</c>, this method call will immediately force a call to validate the model.</param>
        </member>
        <member name="M:Catel.Data.IModelValidationExtensions.AddFieldValidationResult(Catel.Data.IModelValidation,Catel.Data.IFieldValidationResult,System.Boolean)">
            <summary>
            Adds the field validation result.
            <para />
            This method is great to add asynchronous validation.
            </summary>
            <param name="modelValidation">The model validation.</param>
            <param name="fieldValidationResult">The field validation result.</param>
            <param name="validate">if set to <c>true</c>, this method call will immediately force a call to validate the model.</param>
        </member>
        <member name="T:Catel.Data.IParentExtensions">
            <summary>
            Extension methods for the <see cref="T:Catel.Data.IParent"/> interface.
            </summary>
        </member>
        <member name="M:Catel.Data.IParentExtensions.FindParent``1(Catel.Data.IParent,System.Int32)">
            <summary>
            Finds the parent of the specified type.
            </summary>
            <typeparam name="TParent">The ty</typeparam>
            <param name="model">The model.</param>
            <param name="maxLevels">The maximum levels to search. If <c>-1</c>, the number is unlimited.</param>
            <returns>The parent or <c>null</c> if the parent is not found.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ModelBaseExtensions">
            <summary>
            Extension methods for the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.SaveAsXml(Catel.Data.ModelBase,System.IO.Stream)">
            <summary>
            Saves as XML.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.Save(Catel.Data.ModelBase,System.IO.Stream,Catel.Runtime.Serialization.ISerializer)">
            <summary>
            Saves the specified model to the stream using the serializer.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
            <param name="serializer">The serializer.</param>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.GetWarningMessage(Catel.Data.ModelBase,System.String)">
            <summary>
            Returns a message that contains all the current warnings.
            </summary>
            <param name="model">The model base.</param>
            <param name="userFriendlyObjectName">Name of the user friendly object.</param>
            <returns>
            Warning string or empty in case of no warnings.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.GetErrorMessage(Catel.Data.ModelBase,System.String)">
            <summary>
            Returns a message that contains all the current errors.
            </summary>
            <param name="model">The model base.</param>
            <param name="userFriendlyObjectName">Name of the user friendly object.</param>
            <returns>
            Error string or empty in case of no errors.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.GetListMessages(Catel.Data.IValidationContext,Catel.Data.ValidationResultType)">
            <summary>
            Gets the list messages.
            </summary>
            <param name="validationContext">The validation context.</param>
            <param name="validationResult">The validation result.</param>
            <returns>
            String representing the output of all items in the fields an business object.
            </returns>
            <remarks>
            This method is used to create a message string for field warnings or errors and business warnings
            or errors. Just pass the right dictionary and list to this method.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBaseExtensions.GetValidationContextForObjectGraph(Catel.Data.IModel)">
            <summary>
            Gets the validation context for a complete object graph by also checking the properties and recursive 
            </summary>
            <param name="model">The model.</param>
            <returns>The validation context for the whole object graph.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ObservableObjectExtensions">
            <summary>
            Extension methods for the <see cref="T:Catel.Data.ObservableObject"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.ObservableObjectExtensions.RaiseAllPropertiesChanged(Catel.Data.ObservableObject)">
            <summary>
            Raises the property changed event for the specified <see cref="T:Catel.Data.ObservableObject"/>.
            </summary>
            <param name="sender">The observable object.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="sender"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ValidationExtensions">
            <summary>
            Extensions for validation.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationExtensions.GetValidationSummary(Catel.Data.IValidationContext,System.Object)">
            <summary>
            Gets the validation summary for the specified <see cref="T:Catel.Data.IValidationContext"/>.
            </summary>
            <param name="validationContext">The validation context.</param>
            <param name="tag">The tag.</param>
            <returns>The <see cref="T:Catel.Data.IValidationSummary"/>.</returns>
        </member>
        <member name="M:Catel.Data.ValidationExtensions.SynchronizeWithContext(Catel.Data.ValidationContext,Catel.Data.IValidationContext,System.Boolean)">
            <summary>
            Synchronizes the current with the specified context. This means that the current contains will become the same as the
            specified context.
            </summary>
            <param name="validationContext">The validation context.</param>
            <param name="additionalValidationContext">The additional validation context.</param>
            <param name="onlyAddValidation">if set to <c>true</c>, validation is only added, not removed. This is great to build up summaries.</param>
            <returns>The list of changes.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.EditableObjectHelper">
            <summary>
            Class that allows to invoke <see cref="T:System.ComponentModel.IEditableObject"/> methods on any object.
            </summary>
        </member>
        <member name="M:Catel.Data.EditableObjectHelper.BeginEditObject(System.Object)">
            <summary>
            Begins an edit on an object.
            <para />
            This method will do nothing when the <paramref name="obj"/> is <c>null</c> or not a <see cref="T:System.ComponentModel.IEditableObject"/>.
            </summary>
            <param name="obj">The object to call the <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> method on.</param>
        </member>
        <member name="M:Catel.Data.EditableObjectHelper.EndEditObject(System.Object)">
            <summary>
            Pushes changes since the last <see cref="M:System.ComponentModel.IEditableObject.EndEdit"/> call.
            <para />
            This method will do nothing when the <paramref name="obj"/> is <c>null</c> or not a <see cref="T:System.ComponentModel.IEditableObject"/>.
            </summary>
            <param name="obj">The object to call the <see cref="M:System.ComponentModel.IEditableObject.EndEdit"/> method on.</param>
        </member>
        <member name="M:Catel.Data.EditableObjectHelper.CancelEditObject(System.Object)">
            <summary>
            Discards changes since the last <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> call.
            <para />
            This method will do nothing when the <paramref name="obj"/> is <c>null</c> or not a <see cref="T:System.ComponentModel.IEditableObject"/>.
            </summary>
            <param name="obj">The object to call the <see cref="M:System.ComponentModel.IEditableObject.CancelEdit"/> method on.</param>
            <remarks>
            This method wi
            </remarks>
        </member>
        <member name="T:Catel.Data.ValidationContextChangeType">
            <summary>
            The type of change that occurred to a validation context item.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationContextChangeType.Added">
            <summary>
            The item was added.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationContextChangeType.Removed">
            <summary>
            The item was removed.
            </summary>
        </member>
        <member name="T:Catel.Data.ValidationContextChange">
            <summary>
            Class containing change information about an item in the validation context.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationContextChange.#ctor(Catel.Data.IValidationResult,Catel.Data.ValidationContextChangeType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationContextChange"/> class.
            </summary>
            <param name="validationResult">The validation result.</param>
            <param name="changeType">Type of the change.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.ValidationContextChange.ValidationResult">
            <summary>
            Gets the validation result.
            </summary>
            <value>The validation result.</value>
        </member>
        <member name="P:Catel.Data.ValidationContextChange.ChangeType">
            <summary>
            Gets the type of the change.
            </summary>
            <value>The type of the change.</value>
        </member>
        <member name="T:Catel.Data.ValidationContextHelper">
            <summary>
            Helper class for <see cref="T:Catel.Data.IValidationContext"/> classes.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationContextHelper.GetChanges(Catel.Data.IValidationContext,Catel.Data.IValidationContext)">
            <summary>
            Gets the changes between two different validation contexts.
            </summary>
            <param name="firstContext">The first context.</param>
            <param name="secondContext">The second context.</param>
            <returns>The list of changes.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="firstContext"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="secondContext"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.XmlNameMapper`1">
            <summary>
            Xml name mappings from xml to properties and back.
            </summary>
            <typeparam name="T">Type of the xml type to map, for example <see cref="T:System.Xml.Serialization.XmlElementAttribute"/> or <see cref="T:System.Xml.Serialization.XmlAttributeAttribute"/>.</typeparam>
        </member>
        <member name="F:Catel.Data.XmlNameMapper`1._xmlMappingsLock">
            <summary>
            Lock object for the xml mappings fields.
            </summary>
        </member>
        <member name="F:Catel.Data.XmlNameMapper`1._xmlNameToPropertyNameMappings">
            <summary>
            Dictionary to provide fast xml name to property name mappings.
            </summary>
        </member>
        <member name="F:Catel.Data.XmlNameMapper`1._xmlPropertyNameToXmlNameMappings">
            <summary>
            Dictionary to provide fast property name to xml name mappings.
            </summary>
        </member>
        <member name="F:Catel.Data.XmlNameMapper`1._propertyDataManager">
            <summary>
            The property data manager used to retrieve the properties of a type.
            </summary>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.#ctor(Catel.Data.PropertyDataManager)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.XmlNameMapper`1"/> class.
            </summary>
            <param name="propertyDataManager">The property data manager.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyDataManager"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.IsXmlNameMappedToProperty(System.Type,System.String)">
            <summary>
            Determines whether the specified XML element is mapped to a property name.
            </summary>
            <param name="type">The type.</param>
            <param name="xmlName">Name of the XML.</param>
            <returns>
            	<c>true</c> if the XML element is mapped to a property name; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.IsPropertyNameMappedToXmlName(System.Type,System.String)">
            <summary>
            Determines whether the property name is mapped to an XML name.
            </summary>
            <param name="type">The type.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
              <c>true</c> if the XML element is mapped to a property name; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.MapXmlNameToPropertyName(System.Type,System.String)">
            <summary>
            Maps the name of the XML element to a property name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="xmlName">Name of the XML element.</param>
            <returns>
            Name of the property that represents the xml value.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.MapPropertyNameToXmlName(System.Type,System.String)">
            <summary>
            Maps the name of the property name to an XML name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
            Name of the XML element that represents the property value.
            </returns>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.InitializeXmlPropertyMappings(System.Type)">
            <summary>
            Initializes the XML property mappings.
            </summary>
            <param name="type">The type for which to initialize the xml mappings.</param>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.InitializeXmlAttributeAttribute(System.Type,System.Xml.Serialization.XmlAttributeAttribute,System.String)">
            <summary>
            Initializes the XML attribute attribute.
            </summary>
            <param name="type">The type.</param>
            <param name="attribute">The attribute. Can be <c>null</c> if not decorated with an attribute.</param>
            <param name="propertyName">Name of the property.</param>
            <returns><c>true</c> if the attribute is handled by this mapper; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.XmlNameMapper`1.InitializeXmlElementAttribute(System.Type,System.Xml.Serialization.XmlElementAttribute,System.String)">
            <summary>
            Initializes the XML element attribute.
            </summary>
            <param name="type">The type.</param>
            <param name="attribute">The attribute. Can be <c>null</c> if not decorated with an attribute.</param>
            <param name="propertyName">Name of the property.</param>
            <returns><c>true</c> if the attribute is handled by this mapper; otherwise, <c>false</c>.</returns>/// <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Data.IAdvancedNotifyPropertyChanged">
            <summary>
            Interface defining advanced additional functionality for the <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> interface. This
            interface still supports the "old" way, so this can perfectly be used by any other class.
            </summary>
        </member>
        <member name="T:Catel.Data.IAdvancedNotifyPropertyChanging">
            <summary>
            Interface defining advanced additional functionality for the <see cref="T:System.ComponentModel.INotifyPropertyChanging"/> interface. This
            interface still supports the "old" way, so this can perfectly be used by any other class.
            </summary>
        </member>
        <member name="T:Catel.Data.IModel">
            <summary>
            IModelBase that the <see cref="T:Catel.Data.ModelBase"/> must implement to easily pass objects to methods as non-generic.
            </summary>
            <remarks>
            This interface defines all the non-generic interfaces that the <see cref="T:Catel.Data.ModelBase"/> class implements.
            </remarks>
        </member>
        <member name="P:Catel.Data.IModel.KeyName">
            <summary>
            Gets the name of the object. By default, this is the name of the inherited class.
            </summary>
            <value>The name of the key.</value>
        </member>
        <member name="P:Catel.Data.IModel.IsDirty">
            <summary>
            Gets a value indicating whether this object is dirty.
            </summary>
            <value><c>true</c> if this object is dirty; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.IModel.IsInEditSession">
            <summary>
            Gets a value indicating whether the object is currently in an edit session, started by the <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> method.
            </summary>
            <value>
            <c>true</c> if this instance is currently in an edit session; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="E:Catel.Data.IModel.Initialized">
            <summary>
            Occurs when the object is initialized.
            </summary>
        </member>
        <member name="M:Catel.Data.IModel.GetDefaultValue(System.String)">
            <summary>
            Returns the default value of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModel.GetDefaultValue(Catel.Data.PropertyData)">
            <summary>
            Returns the default value of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModel.GetDefaultValue``1(System.String)">
            <summary>
            Returns the typed default value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="name">Name of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModel.GetDefaultValue``1(Catel.Data.PropertyData)">
            <summary>
            Returns the typed default value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModel.GetPropertyType(System.String)">
            <summary>
            Returns the type of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <returns>Type of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModel.GetPropertyType(Catel.Data.PropertyData)">
            <summary>
            Returns the type of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Type of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="T:Catel.Data.IModelEditor">
            <summary>
            An interface that allows public editing of <see cref="T:Catel.Data.ModelBase"/> instances using the <c>GetValue</c>
            and <c>SetValue</c> methods.
            </summary>
        </member>
        <member name="M:Catel.Data.IModelEditor.GetValue(System.String)">
            <summary>
            Gets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModelEditor.GetValue``1(System.String)">
            <summary>
            Gets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModelEditor.SetValue(System.String,System.Object)">
            <summary>
            Sets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.IModelEditor.GetValueFastButUnsecure(System.String)">
            <summary>
            Gets the value in the fastest way possible without doing sanity checks.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value.</returns>
            <remarks>
            Note that this method does not do any sanity checks. Use at your own risk!
            </remarks>
        </member>
        <member name="M:Catel.Data.IModelEditor.SetValueFastButUnsecure(System.String,System.Object)">
            <summary>
            Sets the value in the fastest way possible without doing sanity checks.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <returns>The value.</returns>
            <remarks>
            Note that this method does not do any sanity checks. Use at your own risk!
            </remarks>
        </member>
        <member name="T:Catel.Data.IModelEqualityComparer">
            <summary>
            Implementation of the <see cref="T:System.Collections.IEqualityComparer" /> for the <see cref="T:Catel.Data.ModelBase" />.
            </summary>
        </member>
        <member name="P:Catel.Data.IModelEqualityComparer.CompareProperties">
            <summary>
            Gets or sets a value indicating whether properties should be compared.
            </summary>
            <value><c>true</c> if properties should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.IModelEqualityComparer.CompareValues">
            <summary>
            Gets or sets a value indicating whether values should be compared.
            </summary>
            <value><c>true</c> if values should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.IModelEqualityComparer.CompareCollections">
            <summary>
            Gets or sets a value indicating whether collections should be compared.
            </summary>
            <value><c>true</c> if collections should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.Data.IModelSerialization">
            <summary>
            Defines all serialization members for the models.
            </summary>
        </member>
        <member name="T:Catel.Data.IModelValidation">
            <summary>
            Defines all validation members for the models.
            </summary>
        </member>
        <member name="P:Catel.Data.IModelValidation.Validator">
            <summary>
            Gets or sets the validator to use.
            <para />
            By default, this value retrieves the default validator from them <see cref="T:Catel.Data.IValidatorProvider"/> if it is
            registered in the <see cref="T:Catel.IoC.ServiceLocator"/>.
            </summary>
        </member>
        <member name="P:Catel.Data.IModelValidation.ValidationContext">
            <summary>
            Gets the validation context which contains all information about the validation.
            </summary>
            <value>The validation context.</value>
        </member>
        <member name="P:Catel.Data.IModelValidation.FieldWarningCount">
            <summary>
            Gets the number of field warnings.
            </summary>
            <value>The field warning count.</value>
        </member>
        <member name="P:Catel.Data.IModelValidation.BusinessRuleWarningCount">
            <summary>
            Gets the number of business rule warnings.
            </summary>
            <value>The business rule warning count.</value>
        </member>
        <member name="P:Catel.Data.IModelValidation.FieldErrorCount">
            <summary>
            Gets the number of field errors.
            </summary>
            <value>The field error count.</value>
        </member>
        <member name="P:Catel.Data.IModelValidation.BusinessRuleErrorCount">
            <summary>
            Gets the number of business rule errors.
            </summary>
            <value>The business rule error count.</value>
        </member>
        <member name="P:Catel.Data.IModelValidation.IsHidingValidationResults">
            <summary>
            Gets a value indicating whether the object is currently hiding its validation results. If the object
            hides its validation results, it is still possible to retrieve the validation results using the
            <see cref="P:Catel.Data.IModelValidation.ValidationContext"/>.
            </summary>
        </member>
        <member name="E:Catel.Data.IModelValidation.Validating">
            <summary>
            Occurs when the object is validating.
            </summary>
        </member>
        <member name="E:Catel.Data.IModelValidation.Validated">
            <summary>
            Occurs when the object is validated.
            </summary>
        </member>
        <member name="M:Catel.Data.IModelValidation.Validate(System.Boolean)">
            <summary>
            Validates the current object for field and business rule errors.
            </summary>
            <param name="force">if set to <c>true</c>, a validation is forced. When the validation is not forced, it means 
            that when the object is already validated, and no properties have been changed, no validation actually occurs 
            since there is no reason for any values to have changed.
            </param>
            <remarks>
            To check wether this object contains any errors, use the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property.
            </remarks>
        </member>
        <member name="T:Catel.Data.IParent">
            <summary>
            Interface that should be implemented by all objects that can have a parent.
            </summary>
        </member>
        <member name="P:Catel.Data.IParent.Parent">
            <summary>
            Gets the parent.
            </summary>
            <value>The parent.</value>
        </member>
        <member name="T:Catel.Data.ISavableModel">
            <summary>
            ISavableDataObjectBase that defines the additional methods to save a <see cref="T:Catel.Data.IModel"/> object.
            </summary>
        </member>
        <member name="P:Catel.Data.ISavableModel.Bytes">
            <summary>
            Gets the bytes of the current binary serialized data object.
            </summary>
            <value>The bytes that represent the object data.</value>
        </member>
        <member name="P:Catel.Data.ISavableModel.Mode">
            <summary>
            Gets or sets the <see cref="T:Catel.Data.SerializationMode"/> of this object.
            </summary>
            <value>The serialization mode.</value>
        </member>
        <member name="M:Catel.Data.ISavableModel.Save(System.String)">
            <summary>
            Saves the object to a file using the default formatting.
            </summary>
            <param name="fileName">Filename of the file that will contain the serialized data of this object.</param>
        </member>
        <member name="M:Catel.Data.ISavableModel.Save(System.String,Catel.Data.SerializationMode)">
            <summary>
            Saves the object to a file using a specific formatting.
            </summary>
            <param name="fileName">Filename of the file that will contain the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode"/> to use.</param>
        </member>
        <member name="M:Catel.Data.ISavableModel.Save(System.IO.Stream)">
            <summary>
            Saves the object to a stream using the default formatting.
            </summary>
            <param name="stream">Stream that will contain the serialized data of this object.</param>
        </member>
        <member name="M:Catel.Data.ISavableModel.Save(System.IO.Stream,Catel.Data.SerializationMode)">
            <summary>
            Saves the object to a stream using a specific formatting.
            </summary>
            <param name="stream">Stream that will contain the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode"/> to use.</param>
        </member>
        <member name="T:Catel.Data.IValidationContext">
            <summary>
            Interface describing the validation 
            </summary>
        </member>
        <member name="P:Catel.Data.IValidationContext.HasWarnings">
            <summary>
            Gets a value indicating whether this instance contains warnings.
            </summary>
        </member>
        <member name="P:Catel.Data.IValidationContext.HasErrors">
            <summary>
            Gets a value indicating whether this instance contains errors.
            </summary>
        </member>
        <member name="P:Catel.Data.IValidationContext.LastModified">
            <summary>
            Gets the last modified date/time.
            <para />
            Note that this is just an informational value and should not be used for comparisons. The <see cref="T:System.DateTime"/> 
            is not accurate enough. Use the <c>LastModifiedTicks</c> instead. 
            </summary>
            <value>The last modified date/time.</value>
        </member>
        <member name="P:Catel.Data.IValidationContext.LastModifiedTicks">
            <summary>
            Gets the last modified ticks which is much more precise that the <see cref="P:Catel.Data.IValidationContext.LastModified"/>. Use this value
            to compare last modification ticks on other validation contexts.
            <para />
            Because only full .NET provides a stopwatch, this property is only available in full .NET. All other target frameworks
            will return the <see cref="P:System.DateTime.Ticks"/> which is <c>not</c> reliable.
            </summary>
            <value>The last modified ticks.</value>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetValidationCount">
            <summary>
            Gets the total validation count of all fields and business rules.
            </summary>
            <returns>
            The number of validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetValidationCount(System.Object)">
            <summary>
            Gets the total validation count of all fields and business rules with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of validations available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetValidations">
            <summary>
            Gets all the field and business rule validations.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetValidations(System.Object)">
            <summary>
            Gets all the field and business rule validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetWarningCount">
            <summary>
            Gets the number of field and business rule warnings inside this context.
            </summary>
            <returns>
            The number of warnings available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetWarningCount(System.Object)">
            <summary>
            Gets the number of field and business rule warnings with the specified tag inside this context.
            </summary>
            <returns>
            The number of warnings available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetWarnings">
            <summary>
            Gets all field and business rule warnings.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetWarnings(System.Object)">
            <summary>
            Gets all field and business rule warnings with the specified tag.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetErrorCount">
            <summary>
            Gets the number of field and business rule errors inside this context.
            </summary>
            <returns>
            The number of errors available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetErrorCount(System.Object)">
            <summary>
            Gets the number of field and business rule errors with the specified tag inside this context.
            </summary>
            <returns>
            The number of errors available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetErrors">
            <summary>
            Gets all field and business rule errors.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetErrors(System.Object)">
            <summary>
            Gets all field and business rule errors with the specified tag.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidationCount">
            <summary>
            Gets the field validation count of all fields.
            </summary>
            <returns>
            The number of field validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidationCount(System.Object)">
            <summary>
            Gets the field validation count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of field validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidations">
            <summary>
            Gets all the field validations.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidations(System.Object)">
            <summary>
            Gets all the field validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidations(System.String)">
            <summary>
            Gets all the field validations for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldValidations(System.String,System.Object)">
            <summary>
            Gets all the field validations for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarningCount">
            <summary>
            Gets the field warning count of all fields.
            </summary>
            <returns>The number of field warnings available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarningCount(System.Object)">
            <summary>
            Gets the field warning count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of field warnings available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarnings">
            <summary>
            Gets all the field warnings.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarnings(System.Object)">
            <summary>
            Gets all the field warnings with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarnings(System.String)">
            <summary>
            Gets all the field warnings for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldWarnings(System.String,System.Object)">
            <summary>
            Gets all the field warnings for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrorCount">
            <summary>
            Gets the field error count of all fields.
            </summary>
            <returns>The number of field errors available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrorCount(System.Object)">
            <summary>
            Gets the field error count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of field errors available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrors">
            <summary>
            Gets all the field errors.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrors(System.Object)">
            <summary>
            Gets all the field errors with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrors(System.String)">
            <summary>
            Gets all the field errors for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetFieldErrors(System.String,System.Object)">
            <summary>
            Gets all the field errors for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleValidationCount">
            <summary>
            Gets the business rule validation count.
            </summary>
            <returns>The number of business rule validations available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleValidationCount(System.Object)">
            <summary>
            Gets the business rule validation count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleValidations">
            <summary>
            Gets all the business rule validations.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleValidations(System.Object)">
            <summary>
            Gets all the business rule validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleWarningCount">
            <summary>
            Gets the business rule warning count.
            </summary>
            <returns>The number of business rule warnings available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleWarningCount(System.Object)">
            <summary>
            Gets the business rule warning count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule warnings available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleWarnings">
            <summary>
            Gets all the business rule warnings.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleWarnings(System.Object)">
            <summary>
            Gets all the business rule warnings with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleErrorCount">
            <summary>
            Gets the business rule error count.
            </summary>
            <returns>The number of business rule errors available.</returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleErrorCount(System.Object)">
            <summary>
            Gets the business rule error count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule errors available.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleErrors">
            <summary>
            Gets all the business rule errors.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.GetBusinessRuleErrors(System.Object)">
            <summary>
            Gets all the business rule errors with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.IValidationContext.AddFieldValidationResult(Catel.Data.IFieldValidationResult)">
            <summary>
            Adds the field validation result.
            </summary>
            <param name="fieldValidationResult">The field validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.RemoveFieldValidationResult(Catel.Data.IFieldValidationResult)">
            <summary>
            Removes the field validation result.
            </summary>
            <param name="fieldValidationResult">The field validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.AddBusinessRuleValidationResult(Catel.Data.IBusinessRuleValidationResult)">
            <summary>
            Adds the business rule validation result.
            </summary>
            <param name="businessRuleValidationResult">The business rule validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidationContext.RemoveBusinessRuleValidationResult(Catel.Data.IBusinessRuleValidationResult)">
            <summary>
            Removes the business rule validation result.
            </summary>
            <param name="businessRuleValidationResult">The business rule validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ValidationResultType">
            <summary>
            Types of validation results.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationResultType.Warning">
            <summary>
            Validation result represents a warning.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationResultType.Error">
            <summary>
            Validation result represents an error.
            </summary>
        </member>
        <member name="T:Catel.Data.IValidationResult">
            <summary>
            Validation result with information about validations.
            </summary>
        </member>
        <member name="P:Catel.Data.IValidationResult.ValidationResultType">
            <summary>
            Gets the type of the validation result.
            </summary>
            <value>The type of the validation result.</value>
        </member>
        <member name="P:Catel.Data.IValidationResult.Message">
            <summary>
            Gets the validation result message.
            </summary>
            <value>The message.</value>
            <remarks>
            This value has a public setter so it is possible to customize the message
            in derived classes.
            <para />
            One should be careful and know what they are doing when overwriting an error message.
            </remarks>
        </member>
        <member name="P:Catel.Data.IValidationResult.Tag">
            <summary>
            Gets or sets the tag that allows grouping of validations.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.Data.IFieldValidationResult">
            <summary>
            Field validation result with information about field validations.
            </summary>
        </member>
        <member name="P:Catel.Data.IFieldValidationResult.PropertyName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="T:Catel.Data.IBusinessRuleValidationResult">
            <summary>
            Business rule validation result with information about business rule validations.
            </summary>
        </member>
        <member name="T:Catel.Data.IValidationSummary">
            <summary>
            The validation summary interface.
            </summary>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasWarnings">
            <summary>
            Gets a value indicating whether the summary contains warnings.
            </summary>
            <value>
            <c>true</c> if this instance has warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasErrors">
            <summary>
            Gets a value indicating whether the summary contains errors.
            </summary>
            <value>
            <c>true</c> if this instance has errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasFieldWarnings">
            <summary>
            Gets a value indicating whether the summary contains field warnings.
            </summary>
            <value>
            <c>true</c> if this instance has field warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasFieldErrors">
            <summary>
            Gets a value indicating whether the summary contains field errors.
            </summary>
            <value>
            <c>true</c> if this instance has field errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasBusinessRuleWarnings">
            <summary>
            Gets a value indicating whether the summary contains business rule warnings.
            </summary>
            <value>
            <c>true</c> if this instance has business rule warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.HasBusinessRuleErrors">
            <summary>
            Gets a value indicating whether the summary contains business rule errors.
            </summary>
            <value>
            <c>true</c> if this instance has business rule errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.FieldWarnings">
            <summary>
            Gets a collection of field warnings.
            </summary>
            <value>The field warnings.</value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.FieldErrors">
            <summary>
            Gets a collection of field errors.
            </summary>
            <value>The field errors.</value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.BusinessWarnings">
            <summary>
            Gets a collection of business rule warnings.
            </summary>
            <value>The business warnings.</value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.BusinessRuleErrors">
            <summary>
            Gets a collection of business rule errors.
            </summary>
            <value>The business rule errors.</value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.LastModified">
            <summary>
            Gets the last modified date/time.
            <para />
            Note that this is just an informational value and should not be used for comparisons. The <see cref="T:System.DateTime"/> 
            is not accurate enough. Use the <c>LastModifiedTicks</c> instead. 
            </summary>
            <value>The last modified date/time.</value>
        </member>
        <member name="P:Catel.Data.IValidationSummary.LastModifiedTicks">
            <summary>
            Gets the last modified ticks which is much more precise that the <see cref="P:Catel.Data.IValidationSummary.LastModified"/>. Use this value
            to compare last modification ticks on other validation contexts.
            <para />
            Because only full .NET provides a stopwatch, this property is only available in full .NET. All other target frameworks
            will return the <see cref="P:System.DateTime.Ticks"/> which is <c>not</c> reliable.
            </summary>
            <value>The last modified ticks.</value>
        </member>
        <member name="T:Catel.Data.IValidator">
            <summary>
            Validator that can handle the validation of an object.
            </summary>
        </member>
        <member name="M:Catel.Data.IValidator.Validate(System.Object,Catel.Data.ValidationContext)">
            <summary>
            Validates the specified instance and allows the manipulation of the whole validation context.
            <para />
            This method can be used to manipulate the whole validation context and the implementation of this is enough.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationContext">The validation context.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.BeforeValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before any validation is caused.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousFieldValidationResults">The previous field validation results.</param>
            <param name="previousBusinessRuleValidationResults">The previous business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousFieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousBusinessRuleValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.BeforeValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its fields.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The previous validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.ValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Validates the fields of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.AfterValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just after the specified instance has validated its fields.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.BeforeValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its business rules.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.ValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Validates the business rules of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.AfterValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after the specified instance has validated its business rules.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.IValidator.AfterValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after all validation has been executed.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="fieldValidationResults">The current field validation results.</param>
            <param name="businessRuleValidationResults">The current business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.IValidatorProvider">
            <summary>
              Provider of <see cref="T:Catel.Data.IValidator" /> classes. This provider can be used to retrieve specific validators for specific types.
            </summary>
        </member>
        <member name="M:Catel.Data.IValidatorProvider.GetValidator``1">
            <summary>
              Gets a validator for the specified target type.
            </summary>
            <typeparam name="TTargetType"> The target type. </typeparam>
            <returns> The <see cref="T:Catel.Data.IValidator" /> for the specified type or <c>null</c> if no validator is available for the specified type. </returns>
        </member>
        <member name="M:Catel.Data.IValidatorProvider.GetValidator(System.Type)">
            <summary>
              Gets a validator for the specified target type.
            </summary>
            <param name="targetType"> The target type. </param>
            <returns> The <see cref="T:Catel.Data.IValidator" /> for the specified type or <c>null</c> if no validator is available for the specified type. </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="targetType" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.IValueValidator`1">
            <summary>
            The value validator interface
            </summary>
            <typeparam name="TValue">
            The type of the value
            </typeparam>
        </member>
        <member name="M:Catel.Data.IValueValidator`1.IsValid(`0)">
            <summary>
            Determines whether the specified value is valid.
            </summary>
            <param name="value">
            The value.
            </param>
            <returns>
            <c>true</c> if is valid, otherwise <c>false</c>.
            </returns>
        </member>
        <member name="T:Catel.Data.SerializationMode">
            <summary>
            Enumeration containing all the available serialization modes for the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="F:Catel.Data.SerializationMode.Xml">
            <summary>
            Serialize using the <see cref="T:System.Runtime.Serialization.DataContractSerializer"/>.
            </summary>
        </member>
        <member name="T:Catel.Data.ModelBase">
            <summary>
            Abstract class that serves as a base class for serializable objects.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.InternalSerializationType">
            <summary>
            The type that is used for internal serialization.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._initializedTypes">
            <summary>
            Dictionary of initialized types.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._initializedTypesLock">
            <summary>
            Lock object for the <see cref="F:Catel.Data.ModelBase._initializedTypes"/> field.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._propertyBag">
            <summary>
            The property values.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._propertyValueChangeNotificationWrappers">
            <summary>
            The change notification wrappers for all property values.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._propertyValuesLock">
            <summary>
            Lock object for the <see cref="F:Catel.Data.ModelBase._propertyBag"/> field.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._parent">
            <summary>
            The parent object of the current object.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._leanAndMeanModel">
            <summary>
            Backing field for the <see cref="P:Catel.Data.ModelBase.LeanAndMeanModel"/> property. Because it has custom logic, it needs a backing field.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._equalityComparer">
            <summary>
            Backing field for the <see cref="P:Catel.Data.ModelBase.EqualityComparer"/> property. Because it has custom logic, it needs a backing field.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._hashCode">
            <summary>
            Backing field for the <see cref="M:Catel.Data.ModelBase.GetHashCode"/> method so it only has to be calculated once to gain the best performance possible.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.Catel#Data#IModel#Initialized">
            <summary>
            Occurs when the object is initialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.op_Equality(Catel.Data.ModelBase,Catel.Data.ModelBase)">
            <summary>
            Implements the operator ==.
            </summary>
            <param name="firstObject">The first object.</param>
            <param name="secondObject">The second object.</param>
            <returns>The result of the operator.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.op_Inequality(Catel.Data.ModelBase,Catel.Data.ModelBase)">
            <summary>
            Implements the operator !=.
            </summary>
            <param name="firstObject">The first object.</param>
            <param name="secondObject">The second object.</param>
            <returns>The result of the operator.</returns>
        </member>
        <member name="P:Catel.Data.ModelBase.EqualityComparer">
            <summary>
            Gets or sets the equality comparer used to compare model bases with each other.
            </summary>
            <value>The equality comparer.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.GlobalLeanAndMeanModel">
            <summary>
            Gets or sets a value indicating whether all models should behave as a lean and mean model.
            <para />
            To find out what lean and mean means, see <see cref="P:Catel.Data.ModelBase.LeanAndMeanModel"/>.
            <para />
            The default value is <c>false</c>.
            </summary>
            <value><c>true</c> if all models should behave as lean and mean; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.LeanAndMeanModel">
            <summary>
            Gets or sets a value indicating whether this model should behave as a lean and mean model.
            <para />
            A lean and mean model will not handle any validation code, nor will it raise any change notification events.
            </summary>
            <value><c>true</c> if this is a lean and mean model; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.DisablePropertyChangeNotifications">
            <summary>
            Gets or sets a value indicating whether property change notifications are currently disabled for all instances.
            </summary>
            <value><c>true</c> if property change notifications should be disabled for all instances; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.DisableEventSubscriptionsOfChildValues">
            <summary>
            Gets or sets a value indicating whether event subscriptions of child values should be disabled.
            <para />
            The default value is <c>false</c>.
            </summary>
            <value><c>true</c> if event subscriptions of child values should be disabled; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.DefaultDisableEventSubscriptionsOfChildValuesValue">
            <summary>
            Gets or sets a value indicating whether event subscriptions of child values should be disabled.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.PropertyDataManager">
            <summary>
            Gets the property data manager that manages the properties of this object.
            </summary>
            <value>The property data manager.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.IsInitializing">
            <summary>
            Gets a value indicating whether this object is currently initializing.
            </summary>
            <value>
            <c>true</c> if this object is currently initializing; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ModelBase.IsInitialized">
            <summary>
            Gets a value indicating whether this object is initialized.
            </summary>
            <value>
            <c>true</c> if this object is initialized; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ModelBase.IsDeserializedDataAvailable">
            <summary>
            Gets or sets a value indicating whether the deserialized data is available, which means that
            OnDeserialized is invoked.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.IsDeserialized">
            <summary>
            Gets or sets a value indicating whether the object is fully deserialized.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.AlwaysInvokeNotifyChanged">
            <summary>
            Gets or sets a value indicating whether this object should always invoke the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event,
            even when the actual value of a property has not changed.
            <para />
            Enabling this property is useful when using this class in a WPF environment.
            </summary>
            <remarks>
            By default, this property is <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.Data.ModelBase.HandlePropertyAndCollectionChanges">
            <summary>
            Gets or sets a value indicating whether this object should handle (thus invoke the specific events) when
            a property of collection value has changed.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.AutomaticallyValidateOnPropertyChanged">
            <summary>
            Gets or sets a value indicating whether this object should automatically validate itself when a property value
            has changed.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IParent#Parent">
            <summary>
            Gets the parent.
            </summary>
            <value>The parent.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModel#KeyName">
            <summary>
            Gets the name of the object. By default, this is the hash code of all the properties combined.
            </summary>
            <value>The name of the key.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModel#IsInEditSession">
            <summary>
            Gets a value indicating whether the object is currently in an edit session, started by the <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> method.
            </summary>
            <value>
            <c>true</c> if this instance is currently in an edit session; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ModelBase.IsDirty">
            <summary>
            Gets or sets a value indicating whether this object is dirty (contains unsaved data).
            </summary>
            <value><c>true</c> if this instance is dirty; otherwise, <c>false</c>.</value>
        </member>
        <member name="F:Catel.Data.ModelBase.IsDirtyProperty">
            <summary>
            Register the IsDirty property so it is known in the class.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.IsReadOnly">
            <summary>
            Gets or sets a value indicating whether this object is currently read-only. When the object is read-only, values can only be read, not set.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.IsReadOnlyProperty">
            <summary>
            Register the IsReadOnly property so it is known in the class.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.DeserializationSucceeded">
            <summary>
            Gets a value indicating whether the deserialization has succeeded. If automatic deserialization fails, the object
            should try to deserialize manually.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.InitializeCustomProperties">
            <summary>
            Allows the initialization of custom properties. This is a virtual method that is called
            inside the constructor before the object is fully constructed.
            <para />
            This might be considered as bad or as a hack, but it's a good way to be able to inject
            custom properties before any actual logic is handled by derived classes.
            </summary>
            <remarks>
            Only use when you really know what you are doing.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.OnInitializing">
            <summary>
            Called when the object is being initialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnInitialized">
            <summary>
            Called when the object is initialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Initialize">
            <summary>
            Initializes the object by setting default values.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.FinishInitializationAfterConstructionOrDeserialization">
            <summary>
            Finishes the initialization after construction or deserialization.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.SetParent(Catel.Data.IParent)">
            <summary>
            Sets the new parent of this object.
            </summary>
            <param name="parent">The new parent.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.NullReferenceException">
            The <paramref name="obj"/> parameter is null.
            </exception>
        </member>
        <member name="M:Catel.Data.ModelBase.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this instance.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.ClearIsDirtyOnAllChilds">
            <summary>
            Clears the <see cref="P:Catel.Data.ModelBase.IsDirty"/> on all childs.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.ClearIsDirtyOnAllChilds(System.Object,System.Collections.Generic.HashSet{Catel.Data.IModel})">
            <summary>
            Clears the <see cref="P:Catel.Data.ModelBase.IsDirty"/> on all childs.
            </summary>
            <param name="obj">The object.</param>
            <param name="handledReferences">The already handled references, required to prevent circular stackoverflows.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.HandleObjectEventsSubscription(System.String,System.Object)">
            <summary>
            Handles the object events subscription. This means that the old value will be removed from the event subscriptions, and
            the new value will be subscribed to.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="propertyValue">The property value.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnPropertyObjectPropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Called when a property that implements <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> raises the event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnPropertyObjectCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Called when a property that implements <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/> raises the event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnPropertyObjectCollectionItemPropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Called when a property inside a collection that implements <see cref="T:System.Collections.Specialized.INotifyCollectionChanged"/> that implements
            <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> raises the event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.RaisePropertyChangedForAllRegisteredProperties">
            <summary>
            Invokes the property changed for all registered properties.
            </summary>
            <remarks>
            Using this method does not set the <see cref="P:Catel.Data.ModelBase.IsDirty"/> property to <c>true</c>, nor will
            it cause the object to validate itself automatically, even when the <see cref="P:Catel.Data.ModelBase.AutomaticallyValidateOnPropertyChanged"/>
            is set to <c>true</c>.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.RaisePropertyChanged(System.Object,Catel.Data.AdvancedPropertyChangedEventArgs)">
            <summary>
            Raises the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <remarks>
            This method is overriden en does not call the base because lots of additional logic is added in this class. The
            <see cref="M:Catel.Data.ModelBase.RaisePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs,System.Boolean,System.Boolean)"/> will explicitly call 
            <see cref="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.Object,Catel.Data.AdvancedPropertyChangedEventArgs)"/>.
            <para />
            If this method is overriden, it is very important to call the base.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.RaisePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs,System.Boolean,System.Boolean)">
            <summary>
            Invoked when a property value has changed.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <param name="setDirtyAndAllowAutomaticValidation">if set to <c>true</c>, the <see cref="P:Catel.Data.ModelBase.IsDirty"/> property is set and automatic validation is allowed.</param>
            <param name="isRefreshCallOnly">if set to <c>true</c>, the call is only to refresh updates (for example, for the IDataErrorInfo 
            implementation). If this value is <c>false</c>, the custom change handlers will not be called.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.ShouldPropertyChangeUpdateIsDirty(System.String)">
            <summary>
            Determines whether a specific property change should update <c>IsDirty</c> to <c>true</c>.
            </summary>
            <returns><c>true</c> if <c>IsDirty</c> should be set to <c>true</c> when the specified property has changed, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.SetDirtyAndAutomaticallyValidate(System.String,System.Boolean)">
            <summary>
            Sets the <see cref="P:Catel.Data.ModelBase.IsDirty"/> property and automatically validate if required.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="setDirtyAndAllowAutomaticValidation">If set to <c>true</c>, the <see cref="P:Catel.Data.ModelBase.IsDirty"/> property is set and automatic validation is allowed.</param>
        </member>
        <member name="T:Catel.Data.ModelBase.BackupData">
            <summary>
            Class containing backup information.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.BackupData.IsDirty">
            <summary>
            The name of the <see cref="P:Catel.Data.ModelBase.IsDirty"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.BackupData._object">
            <summary>
            The <see cref="T:Catel.Data.ModelBase"/> object that this backup is created for.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.BackupData._propertyValuesBackup">
            <summary>
            Backup of the property values.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.BackupData._objectValuesBackup">
            <summary>
            Backup of the object values.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.BackupData.#ctor(Catel.Data.ModelBase)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ModelBase.BackupData"/> class.
            </summary>
            <param name="obj">Object to backup.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.BackupData.CreateBackup">
            <summary>
            Creates a backup of the object property values.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.BackupData.RestoreBackup">
            <summary>
            Restores the backup to the object.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._backup">
            <summary>
            The backup of the current object if any backup is initiated.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase._cancelEditingCompletedEvent">
            <summary>
            Occurs when the edit cancel has been completed or canceled.
            </summary>
            <remarks>
            This event uses <see cref="T:System.EventArgs"/> instead of
            an derived version of <see cref="T:System.ComponentModel.EditEventArgs"/> because
            having a Cancel flag would be misleading and there appears to
            be no need for the <see cref="P:System.ComponentModel.EditEventArgs.EditableObject"/> as
            the sender of the event should be the same information.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.OnBeginEdit(System.ComponentModel.BeginEditEventArgs)">
            <summary>
            Raises the <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> event.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.BeginEditEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnCancelEdit(System.ComponentModel.EditEventArgs)">
            <summary>
            Raises the <see cref="M:System.ComponentModel.IEditableObject.CancelEdit"/> event.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.EditEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnCancelEditCompleted(System.ComponentModel.CancelEditCompletedEventArgs)">
            <summary>
            Raises the <see cref="E:System.ComponentModel.IAdvancedEditableObject.CancelEditingCompleted"/> event.
            </summary>
            <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnEndEdit(System.ComponentModel.EditEventArgs)">
            <summary>
            Raises the <see cref="M:System.ComponentModel.IEditableObject.EndEdit"/> event.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.EditEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.System#ComponentModel#IEditableObject#BeginEdit">
            <summary>
            Begins an edit on an object.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.System#ComponentModel#IEditableObject#CancelEdit">
            <summary>
            Discards changes since the last <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> call.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.System#ComponentModel#IEditableObject#EndEdit">
            <summary>
            Pushes changes since the last <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> call.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.SetValue(System.String,System.Object)">
            <summary>
            Sets the value of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="value">Value of the property.</param>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.SetValue(System.String,System.Object,System.Boolean,System.Boolean)">
            <summary>
            Sets the value of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="value">Value of the property.</param>
            <param name="notifyOnChange">If <c>true</c>, the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/> event will be invoked.</param>
            <param name="validateAttributes">If set to <c>true</c>, the validation attributes on the property will be validated.</param>
            <exception cref="T:Catel.Data.PropertyNotNullableException">The property is not nullable, but <paramref name="value"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.SetValue(Catel.Data.PropertyData,System.Object)">
            <summary>
            Sets the value of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <param name="value">Value of the property.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.SetValue(Catel.Data.PropertyData,System.Object,System.Boolean,System.Boolean)">
            <summary>
            Sets the value of a specific property.
            </summary>
            <param name="property">The property to set.</param>
            <param name="value">Value of the property.</param>
            <param name="notifyOnChange">If <c>true</c>, the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged"/> event will be invoked.</param>
            <param name="validateAttributes">If set to <c>true</c>, the validation attributes on the property will be validated.</param>
            <exception cref="T:Catel.Data.PropertyNotNullableException">The property is not nullable, but <paramref name="value"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.SetValueFast(System.String,System.Object)">
            <summary>
            Sets the value fast without checking for any constraints or additional logic such as change notifications. This 
            means that if this method is used incorrectly, it can throw random exceptions.
            <para />
            This is a wrapper around the _propertyValues field. Don't use the field directly, always use
            this method because it takes care of locking and event subscriptions.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValueFast``1(System.String)">
            <summary>
            Gets the value fast without checking for any constraints. This means that if this method is used incorrectly,
            it can throw random exceptions.
            <para />
            This is a wrapper around the _propertyValues field. Don't use the field directly, always use
            this method because it takes care of locking and event subscriptions.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValue(System.String)">
            <summary>
            Gets the value of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <returns>Object value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValue``1(System.String)">
            <summary>
            Gets the typed value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="name">Name of the property.</param>
            <returns>Object value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValue(Catel.Data.PropertyData)">
            <summary>
            Gets the value of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Object value of the property.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValue``1(Catel.Data.PropertyData)">
            <summary>
            Gets the typed value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Object value of the property.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelEditor#GetValue(System.String)">
            <summary>
            Gets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelEditor#GetValue``1(System.String)">
            <summary>
            Gets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelEditor#SetValue(System.String,System.Object)">
            <summary>
            Sets the value of the specified property.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelEditor#GetValueFastButUnsecure(System.String)">
            <summary>
            Gets the value in the fastest way possible without doing sanity checks.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>The value.</returns>
            <remarks>
            Note that this method does not do any sanity checks. Use at your own risk!
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelEditor#SetValueFastButUnsecure(System.String,System.Object)">
            <summary>
            Sets the value in the fastest way possible without doing sanity checks.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <returns>The value.</returns>
            <remarks>
            Note that this method does not do any sanity checks. Use at your own risk!
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetDefaultValue(System.String)">
            <summary>
            Returns the default value of a specific property.
            </summary>
            <param name="name">Name of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetDefaultValue(Catel.Data.PropertyData)">
            <summary>
            Returns the default value of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetDefaultValue``1(System.String)">
            <summary>
            Returns the typed default value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the 1.</typeparam>
            <param name="name">Name of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetDefaultValue``1(Catel.Data.PropertyData)">
            <summary>
            Returns the typed default value of a specific property.
            </summary>
            <typeparam name="TValue">The type of the 1.</typeparam>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Default value of the property.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty``2(System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.Action{``0,Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <typeparam name="TModel">The model type.</typeparam>
            <typeparam name="TValue">The value type.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="defaultValue">Default value of the property.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">If set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">If set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="setParent">If set to <c>true</c>, the parent of the property will be set.</param>
            <returns><see cref="T:Catel.Data.PropertyData" /> containing the property information.</returns>
            <exception cref="T:System.ArgumentException">The member type of the body of the <paramref name="propertyExpression" /> of should be <c>MemberTypes.Property</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty``2(System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Func{``1},System.Action{``0,Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <typeparam name="TModel">The model type.</typeparam>
            <typeparam name="TValue">The value type.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="createDefaultValue">The delegate that creates the default value. If <c>null</c>, a delegate returning the default 
            value (<c>null</c> for reference types, <c>Activator.CreateInstance(type)</c> for value types).</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">If set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">If set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <returns><see cref="T:Catel.Data.PropertyData" /> containing the property information.</returns>
            <exception cref="T:System.ArgumentException">The member type of the body of the <paramref name="propertyExpression" /> of should be <c>MemberTypes.Property</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty``1(System.String,System.Type,``0,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="defaultValue">Default value of the property.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <returns>
            <see cref="T:Catel.Data.PropertyData"/> containing the property information.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty(System.String,System.Type,System.Func{System.Object},System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="createDefaultValue">The delegate that creates the default value. If <c>null</c>, a delegate returning the default 
            value (<c>null</c> for reference types, <c>Activator.CreateInstance(type)</c> for value types).</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <returns>
            <see cref="T:Catel.Data.PropertyData"/> containing the property information.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty``1(System.String,System.Type,``0,System.Boolean,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="defaultValue">Default value of the property.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="isModelBaseProperty">if set to <c>true</c>, the property is declared by the <see cref="T:Catel.Data.ModelBase"/>.</param>
            <returns>
            <see cref="T:Catel.Data.PropertyData"/> containing the property information.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.RegisterProperty(System.String,System.Type,System.Func{System.Object},System.Boolean,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Registers a property that will be automatically handled by this object.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="createDefaultValue">The delegate that creates the default value. If <c>null</c>, a delegate returning the default 
            value (<c>null</c> for reference types, <c>Activator.CreateInstance(type)</c> for value types).</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="isModelBaseProperty">if set to <c>true</c>, the property is declared by the <see cref="T:Catel.Data.ModelBase"/>.</param>
            <returns>
            <see cref="T:Catel.Data.PropertyData"/> containing the property information.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.UnregisterProperty(System.Type,System.String)">
            <summary>
            Unregisters the property.
            <para />
            Note that the unregistration of a property applies to all models of the same type. It is not possible to 
            unregister a property for a single instance of a type.
            </summary>
            <param name="modelType">Type of the model, required because it cannot be retrieved in a static context.</param>
            <param name="name">The name.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.InitializeProperties">
            <summary>
            Initializes all the properties for this object.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.InitializePropertyAfterConstruction(Catel.Data.PropertyData)">
            <summary>
            Initializes a specific property for this object after the object is already constructed and initialized.
            <para />
            Normally, properties are automatically registered in the constructor. If properties should be registered
            via runtime behavior, this method must be used.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.InvalidPropertyException">The name of the property is invalid.</exception>
            <exception cref="T:Catel.Data.PropertyAlreadyRegisteredException">The property is already registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.InitializeProperty(Catel.Data.PropertyData,System.Boolean,System.Boolean)">
            <summary>
            Initializes a specific property for this object.
            </summary>
            <param name="property">The property.</param>
            <param name="lateRegistration">If set to <c>true</c>, the property is assumed to be registered after the official initialization.</param>
            <param name="isCalculatedProperty">if set to <c>true</c>, the property is a calculated property.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.InvalidPropertyException">The name of the property is invalid.</exception>
            <exception cref="T:Catel.Data.PropertyAlreadyRegisteredException">The property is already registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.InitializeProperty(System.String,System.Type,System.Object,System.Boolean,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Initializes a specific property for this object.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="defaultValue">Default value of the property.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="isSerializable">if set to <c>true</c>, the property is serializable.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="isModelBaseProperty">if set to <c>true</c>, the property is declared by the <see cref="T:Catel.Data.ModelBase"/>.</param>
            <param name="lateRegistration">if set to <c>true</c>, the property is assumed to be registered after the official initialization.</param>
            <param name="isCalculatedProperty">if set to <c>true</c>, the property is a calculated property.</param>
            <exception cref="T:Catel.Data.InvalidPropertyException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyAlreadyRegisteredException">The property is already registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.IsModelBaseProperty(System.String)">
            <summary>
            Determines whether the specified property is a property declared by the <see cref="T:Catel.Data.ModelBase"/> itself.
            </summary>
            <param name="name">The name of the property.</param>
            <returns>
            <c>true</c> if the specified property is a property declared by the <see cref="T:Catel.Data.ModelBase"/> itself; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.IsPropertyRegistered(System.String)">
            <summary>
            Returns whether a specific property is registered.
            </summary>
            <param name="name">Name of the property.</param>
            <returns>True if the property is registered, otherwise false.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.IsPropertyRegistered``1(System.String)">
            <summary>
            Returns whether a specific property is registered.
            </summary>
            <typeparam name="T">Type of the object for which to check.</typeparam>
            <param name="name">Name of the property.</param>
            <returns>
            True if the property is registered, otherwise false.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.IsPropertyRegistered(System.Type,System.String)">
            <summary>
            Returns whether a specific property is registered.
            </summary>
            <param name="type">The type of the object for which to check.</param>
            <param name="name">Name of the property.</param>
            <returns>
            True if the property is registered, otherwise false.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetPropertyData(System.String)">
            <summary>
            Gets the <see cref="T:Catel.Data.PropertyData"/> for the specified property.
            </summary>
            <param name="name">The name of the property.</param>
            <returns>The <see cref="T:Catel.Data.PropertyData"/>.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.GetPropertyInfo(Catel.Data.PropertyData)">
            <summary>
            Gets the <see cref="T:System.Reflection.PropertyInfo"/> for the specified property.
            </summary>
            <param name="property">The property.</param>
            <returns><see cref="T:System.Reflection.PropertyInfo"/> or <c>null</c> if no property info is found.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetPropertyInfo(System.String)">
            <summary>
            Gets the <see cref="T:System.Reflection.PropertyInfo"/> for the specified property.
            </summary>
            <param name="property">The name of the property.</param>
            <returns><see cref="T:System.Reflection.PropertyInfo"/> or <c>null</c> if no property info is found.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetPropertyType(System.String)">
            <summary>
            Returns the type of a specific property.
            </summary>
            <param name="name">The name of the property.</param>
            <returns>Type of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModel#GetPropertyType(Catel.Data.PropertyData)">
            <summary>
            Returns the type of a specific property.
            </summary>
            <param name="property"><see cref="T:Catel.Data.PropertyData"/> of the property.</param>
            <returns>Type of the property.</returns>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">The property is not registered.</exception>
        </member>
        <member name="P:Catel.Data.ModelBase.Serializer">
            <summary>
            Gets or sets the serializer used for internal model serialization (such as backups).
            </summary>
            <value>The serializer.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.DefaultSerializer">
            <summary>
            Gets or sets the default serializer that will be used for the <see cref="P:Catel.Data.ModelBase.Serializer"/> property.
            </summary>
            <value>The default serializer.</value>
        </member>
        <member name="E:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#Serialized">
            <summary>
            Occurs when the object is serialized.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#Deserialized">
            <summary>
            Occurs when the object is deserialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnSerializing">
            <summary>
            Called when the object is being serialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnSerialized">
            <summary>
            Called when the object has been serialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#StartSerialization">
            <summary>
            Starts the serialization.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#FinishSerialization">
            <summary>
            Finishes the serialization.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnDeserializing">
            <summary>
            Called when the object is being deserialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnDeserialized">
            <summary>
            Called when the object is deserialized.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#StartDeserialization">
            <summary>
            Begins the deserialization.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Runtime#Serialization#ISerializable#FinishDeserialization">
            <summary>
            Finishes the deserialization.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.Load``1(System.Xml.Linq.XDocument)">
            <summary>
            Loads the object from an XmlDocument object.
            </summary>
            <typeparam name="T">Type of the object that should be loaded.</typeparam>
            <param name="xmlDocument">The XML document.</param>
            <returns>
            Deserialized instance of the object. If the deserialization fails, <c>null</c> is returned.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.Load``1(System.IO.Stream,Catel.Data.SerializationMode)">
            <summary>
            Loads the object from a stream using a specific formatting.
            </summary>
            <typeparam name="T">Type of the object that should be loaded.</typeparam>
            <param name="stream">Stream that contains the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode" /> to use.</param>
            <returns>Deserialized instance of the object. If the deserialization fails, <c>null</c> is returned.</returns>
            <remarks>When enableRedirects is enabled, loading will take more time. Only set
            the parameter to <c>true</c> when the deserialization without redirects fails.</remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.Load(System.Type,System.IO.Stream,Catel.Data.SerializationMode)">
            <summary>
            Loads the object from a stream using a specific formatting.
            </summary>
            <param name="type">The type.</param>
            <param name="stream">Stream that contains the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode" /> to use.</param>
            <returns>Deserialized instance of the object. If the deserialization fails, <c>null</c> is returned.</returns>
            <remarks>When enableRedirects is enabled, loading will take more time. Only set
            the parameter to <c>true</c> when the deserialization without redirects fails.</remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.System#Xml#Serialization#IXmlSerializable#GetSchema">
            <summary>
            This method is reserved and should not be used. When implementing the IXmlSerializable interface, you should return null (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the <see cref="T:System.Xml.Serialization.XmlSchemaProviderAttribute"/> to the class.
            </summary>
            <returns>
            An <see cref="T:System.Xml.Schema.XmlSchema"/> that describes the XML representation of the object that is produced by the <see cref="M:System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter)"/> method and consumed by the <see cref="M:System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader)"/> method.
            </returns>
        </member>
        <member name="M:Catel.Data.ModelBase.System#Xml#Serialization#IXmlSerializable#ReadXml(System.Xml.XmlReader)">
            <summary>
            Generates an object from its XML representation.
            </summary>
            <param name="reader">The <see cref="T:System.Xml.XmlReader"/> stream from which the object is deserialized.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.System#Xml#Serialization#IXmlSerializable#WriteXml(System.Xml.XmlWriter)">
            <summary>
            Converts an object into its XML representation.
            </summary>
            <param name="writer">The <see cref="T:System.Xml.XmlWriter"/> stream to which the object is serialized.</param>
        </member>
        <member name="F:Catel.Data.ModelBase.WarningMessageProperty">
            <summary>
            The name of the <see cref="P:System.ComponentModel.IDataWarningInfo.Warning"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.HasWarningsMessageProperty">
            <summary>
            The name of the <see cref="P:System.ComponentModel.INotifyDataWarningInfo.HasWarnings"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.ErrorMessageProperty">
            <summary>
            The name of the <see cref="P:System.ComponentModel.IDataErrorInfo.Error"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase.HasErrorsMessageProperty">
            <summary>
            The name of the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._suspendValidation">
            <summary>
            Backing field for the <see cref="P:Catel.Data.ModelBase.SuspendValidation"/> property. Because it has custom logic, it needs a backing field.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._hasRetrievedValidatorOnce">
            <summary>
            Field that determines whether a validator has been retrieved yet.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._validator">
            <summary>
            The backing field for the <see cref="P:Catel.Data.IModelValidation.Validator"/> property.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._validationLock">
            <summary>
            Lock object to make sure that multiple validations at the same time are not allowed.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._validationContext">
            <summary>
            The validation context, which can contain in-between validation info.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._propertiesNotCheckedDuringDisabledValidation">
            <summary>
            List of property names that were changed, but not checked for validation because validation was suspended at that
            time.
            <para />
            As soon as validation is activated again, these properties should be validated.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._propertyValuesIgnoredOrFailedForValidation">
            <summary>
            The property names that failed to validate and should be skipped next time for NET 4.0 
            attribute validation.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelBase._dataAnnotationValidationResults">
            <summary>
            A dictionary containing the annotation (attribute) validation results of properties of this class.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.IsValidating">
            <summary>
            Gets a value indicating whether the object is currently validating. During validation, no validation will be invoked.
            </summary>
            <value>
            <c>true</c> if the object is validating; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ModelBase.IsValidated">
            <summary>
            Gets or sets a value indicating whether this object is validated or not.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#Validator">
            <summary>
            Gets or sets the validator to use.
            <para />
            By default, this value retrieves the default validator from them <see cref="T:Catel.Data.IValidatorProvider"/> if it is
            registered in the <see cref="T:Catel.IoC.ServiceLocator"/>.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#ValidationContext">
            <summary>
            Gets the validation context which contains all information about the validation.
            </summary>
            <value>The validation context.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#FieldWarningCount">
            <summary>
            Gets the number of field warnings.
            </summary>
            <value>The field warning count.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#BusinessRuleWarningCount">
            <summary>
            Gets the number of business rule warnings.
            </summary>
            <value>The business rule warning count.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#FieldErrorCount">
            <summary>
            Gets the number of field errors.
            </summary>
            <value>The field error count.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#BusinessRuleErrorCount">
            <summary>
            Gets the number of business rule errors.
            </summary>
            <value>The business rule error count.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.SuspendValidation">
            <summary>
            Gets or sets a value indicating whether the validation should be suspended. A call to <see cref="M:Catel.Data.ModelBase.Validate(System.Boolean)"/> will be returned immediately.
            </summary>
            <value><c>true</c> if validation should be suspended; otherwise, <c>false</c>.</value>
            <remarks>
            Unlike the <see cref="P:Catel.Data.ModelBase.HideValidationResults"/> property, this property will prevent validation. If you want validation
            and the ability to query results, but simply hide the validation results, use the <see cref="P:Catel.Data.ModelBase.HideValidationResults"/> property.
            </remarks>
        </member>
        <member name="P:Catel.Data.ModelBase.DefaultSuspendValidationValue">
            <summary>
            Gets or sets a value for the <see cref="P:Catel.Data.ModelBase.SuspendValidation"/> for each model.
            <para />
            By default, this value is <c>false</c>.
            </summary>
            <value><c>true</c> if the validation must be suspended by default; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.ValidateUsingDataAnnotations">
            <summary>
            Gets or sets a value indicating whether the validation should not try to process data annotations.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.DefaultValidateUsingDataAnnotationsValue">
            <summary>
            Gets or sets a value indicating whether the validation should not try to process data annotations.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.SuspendValidationForAllModels">
            <summary>
            Gets or sets a value indicating whether the validation for all classes deriving from <see cref="T:Catel.Data.ModelBase"/> should be suspended.
            <para />
            This is a good way to improve performance for a specific operation where validation only causes overhead.
            </summary>
            <value><c>true</c> if validation should be suspended for all models; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelBase.HideValidationResults">
            <summary>
            Gets or sets a value indicating whether the validation results should be hidden. This means that 
            the <see cref="T:Catel.Data.ValidationContext"/> should be filled, but the <see cref="T:System.ComponentModel.IDataErrorInfo"/> and 
            <see cref="T:System.ComponentModel.INotifyDataErrorInfo"/> should not expose any of the validation ressults.
            <para />
            This is very useful when the validation in the UI should be delayed to a specific point. However, the
            validation is still available for retrieval.
            <para />
            By default, this value is <c>false</c>.
            </summary>
            <value><c>true</c> if the validation should be hidden; otherwise, <c>false</c>.</value>
            <remarks>
            Unlike the <see cref="P:Catel.Data.ModelBase.SuspendValidation"/> property, this property will not prevent validation. It will only
            prevent the error interfaces to not expose them.
            </remarks>
        </member>
        <member name="P:Catel.Data.ModelBase.Catel#Data#IModelValidation#IsHidingValidationResults">
            <summary>
            Gets a value indicating whether the object is currently hiding its validation results. If the object
            hides its validation results, it is still possible to retrieve the validation results using the
            <see cref="T:Catel.Data.ValidationContext"/>.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.Catel#Data#IModelValidation#Validating">
            <summary>
            Occurs when the object is validating.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.ValidatingFields">
            <summary>
            Occurs when the object is about the validate the fields.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.ValidatedFields">
            <summary>
            Occurs when the object has validated the fields.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.ValidatingBusinessRules">
            <summary>
            Occurs when the object is about the validate the business rules.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.ValidatedBusinessRules">
            <summary>
            Occurs when the object has validated the business rules.
            </summary>
        </member>
        <member name="E:Catel.Data.ModelBase.Catel#Data#IModelValidation#Validated">
            <summary>
            Occurs when the object is validated.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.EnsureValidationIsUpToDate(System.Boolean)">
            <summary>
            Ensures the validation is up to date.
            </summary>
            <param name="constraint">if set to <c>true</c>, the validation will be updated if not up to date.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.GetValidator">
            <summary>
            Gets the validator. If the field is <c>null</c>, it will query the service locator.
            </summary>
            <returns>IValidator.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.CatchUpWithSuspendedAnnotationsValidation">
            <summary>
            Catches up with suspended annotations validation.
            <para />
            This method will take care of unvalidated properties that have been changed during
            the suspended validation state of this model.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.ValidatePropertyUsingAnnotations(System.String,System.Object,Catel.Data.PropertyData)">
            <summary>
            Validates the property using data annotations.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value to validate.</param>
            <param name="catelPropertyData">The catel property data. Can be <c>null</c> for non-Catel properties.</param>
            <returns><c>true</c> if no errors using data annotations are found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.ValidateFields(System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Validates the field values of this object. Override this method to enable
            validation of field values.
            </summary>
            <param name="validationResults">The validation results, add additional results to this list.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.SetFieldValidationResult(Catel.Data.IFieldValidationResult)">
            <summary>
            Sets the field validation result.
            </summary>
            <param name="validationResult">The field validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.ValidateBusinessRules(System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Validates the business rules of this object. Override this method to enable
            validation of business rules.
            </summary>
            <param name="validationResults">The validation results, add additional results to this list.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.SetBusinessRuleValidationResult(Catel.Data.IBusinessRuleValidationResult)">
            <summary>
            Sets the business rule validation result.
            </summary>
            <param name="validationResult">The business rule validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidating">
            <summary>
            Called when the object is validating.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidating(Catel.Data.IValidationContext)">
            <summary>
            Called when the object is validating.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatingFields">
            <summary>
            Called when the object is validating the fields.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatingFields(Catel.Data.IValidationContext)">
            <summary>
            Called when the object is validating the fields.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatedFields">
            <summary>
            Called when the object has validated the fields.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatedFields(Catel.Data.IValidationContext)">
            <summary>
            Called when the object has validated the fields.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatingBusinessRules">
            <summary>
            Called when the object is validating the business rules.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatingBusinessRules(Catel.Data.IValidationContext)">
            <summary>
            Called when the object is validating the business rules.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatedBusinessRules">
            <summary>
            Called when the object has validated the business rules.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidatedBusinessRules(Catel.Data.IValidationContext)">
            <summary>
            Called when the object has validated the business rules.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidated">
            <summary>
            Called when the object is validated.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.OnValidated(Catel.Data.IValidationContext)">
            <summary>
            Called when the object is validated.
            </summary>
            <param name="validationContext">The validation context.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.Catel#Data#IModelValidation#Validate(System.Boolean)">
            <summary>
            Validates the current object for field and business rule errors.
            </summary>
            <param name="force">If set to <c>true</c>, a validation is forced. When the validation is not forced, it means 
            that when the object is already validated, and no properties have been changed, no validation actually occurs 
            since there is no reason for any values to have changed.
            </param>
            <remarks>
            To check whether this object contains any errors, use the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.Validate(System.Boolean)">
            <summary>
            Validates the current object for field and business rule errors.
            </summary>
            <param name="force">If set to <c>true</c>, a validation is forced. When the validation is not forced, it means 
            that when the object is already validated, and no properties have been changed, no validation actually occurs 
            since there is no reason for any values to have changed.
            </param>
            <remarks>
            To check whether this object contains any errors, use the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.Validate(System.Boolean,System.Boolean)">
            <summary>
            Validates the current object for field and business rule errors.
            </summary>
            <param name="force">If set to <c>true</c>, a validation is forced (even if the object knows it is already validated).</param>
            <param name="validateDataAnnotations">If set to <c>true</c>, the data annotations will be checked. This value is only used if <paramref name="force"/> is set to <c>true</c>.</param>
            <remarks>
            To check whether this object contains any errors, use the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property.
            </remarks>
        </member>
        <member name="M:Catel.Data.ModelBase.NotifyErrorsChanged(System.String,System.Boolean)">
            <summary>
            Notifies all listeners that the errors for the specified property have changed. If the
            <paramref name="propertyName"/> is <c>null</c> or <see cref="F:System.String.Empty"/>, the business
            errors will be updated.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="notifyHasErrors">if set to <c>true</c>, the <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors"/> property will be notified as well.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.NotifyWarningsChanged(System.String,System.Boolean)">
            <summary>
            Notifies all listeners that the warnings for the specified property have changed. If the
            <paramref name="propertyName"/> is <c>null</c> or <see cref="F:System.String.Empty"/>, the business
            errors will be updated.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="notifyHasWarnings">if set to <c>true</c>, the <see cref="P:System.ComponentModel.INotifyDataWarningInfo.HasWarnings"/> property will be notified as well.</param>
        </member>
        <member name="M:Catel.Data.ModelBase.GetBusinessRuleWarnings">
            <summary>
            Gets the current business warnings.
            </summary>
            <returns>The warnings or <see cref="F:System.String.Empty"/> if no warning is available.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetFieldWarnings(System.String)">
            <summary>
            Gets the warnings for a specific column.
            </summary>
            <param name="columnName">Column name.</param>
            <returns>The warnings or <see cref="F:System.String.Empty"/> if no warning is available.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetBusinessRuleErrors">
            <summary>
            Gets the current errors errors.
            </summary>
            <returns>The errors or <see cref="F:System.String.Empty"/> if no error is available.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.GetFieldErrors(System.String)">
            <summary>
            Gets the errors for a specific column.
            </summary>
            <param name="columnName">Column name.</param>
            <returns>The errors or <see cref="F:System.String.Empty"/> if no error is available.</returns>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#IDataWarningInfo#Warning">
            <summary>
            Gets the current warning.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#IDataWarningInfo#Item(System.String)">
            <summary>
            Gets a warning for a specific column.
            </summary>
            <param name="columnName">Column name.</param>
            <returns>The warning or <see cref="F:System.String.Empty"/> if no warning is available.</returns>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#IDataErrorInfo#Error">
            <summary>
            Gets the current error.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#IDataErrorInfo#Item(System.String)">
            <summary>
            Gets an error for a specific column.
            </summary>
            <param name="columnName">Column name.</param>
            <returns>The error or <see cref="F:System.String.Empty"/> if no error is available.</returns>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#INotifyDataErrorInfo#HasErrors">
            <summary>
            Gets a value indicating whether this object contains any field or business errors.
            </summary>
            <value>
            <c>true</c> if this instance has errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="E:Catel.Data.ModelBase.System#ComponentModel#INotifyDataErrorInfo#ErrorsChanged">
            <summary>
            Occurs when the validation errors have changed for a property or for the entire object.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.System#ComponentModel#INotifyDataErrorInfo#GetErrors(System.String)">
            <summary>
            Gets the validation errors for a specified property or for the entire object.
            </summary>
            <param name="propertyName">The name of the property to retrieve validation errors for, or null or <see cref="F:System.String.Empty"/> to retrieve errors for the entire object.</param>
            <returns>
            The validation errors for the property or object.
            </returns>
        </member>
        <member name="P:Catel.Data.ModelBase.System#ComponentModel#INotifyDataWarningInfo#HasWarnings">
            <summary>
            Gets a value indicating whether this object contains any field or business warnings.
            </summary>
            <value>
            <c>true</c> if this instance has warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="E:Catel.Data.ModelBase.System#ComponentModel#INotifyDataWarningInfo#WarningsChanged">
            <summary>
            Occurs when the warnings have changed.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelBase.System#ComponentModel#INotifyDataWarningInfo#GetWarnings(System.String)">
            <summary>
            Gets the warnings for the specific property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns><see cref="T:System.Collections.IEnumerable"/> of warnings.</returns>
        </member>
        <member name="M:Catel.Data.ModelBase.NotifyValidationResult(Catel.Data.IValidationResult,System.Boolean)">
            <summary>
            Raises the right events based on the validation result.
            </summary>
            <param name="validationResult">The validation result.</param>
            <param name="notifyGlobal">If set to <c>true</c>, the global properties such as <see cref="P:System.ComponentModel.INotifyDataErrorInfo.HasErrors" /> and <see cref="P:System.ComponentModel.INotifyDataWarningInfo.HasWarnings" /> are also raised.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ModelEqualityComparer">
            <summary>
            Implementation of the <see cref="T:System.Collections.Generic.EqualityComparer`1" /> for the <see cref="T:Catel.Data.ModelBase" />.
            </summary>
        </member>
        <member name="F:Catel.Data.ModelEqualityComparer.PropertyDataManager">
            <summary>
            The property data manager.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelEqualityComparer.#cctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ModelEqualityComparer" /> class.
            </summary>
        </member>
        <member name="M:Catel.Data.ModelEqualityComparer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ModelEqualityComparer"/> class.
            </summary>
        </member>
        <member name="P:Catel.Data.ModelEqualityComparer.CompareProperties">
            <summary>
            Gets or sets a value indicating whether properties should be compared.
            <para />
            The default value is <c>false</c>.
            </summary>
            <value><c>true</c> if properties should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelEqualityComparer.CompareValues">
            <summary>
            Gets or sets a value indicating whether values should be compared as well.
            <para />
            Note that this might degrade performance on properties with large collections.
            <para />
            The default value is <c>false</c>.
            </summary>
            <value><c>true</c> if values should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.ModelEqualityComparer.CompareCollections">
            <summary>
            Gets or sets a value indicating whether collections should be compared as well.
            <para />
            Note that this might degrade performance on properties with large collections.
            <para />
            The default value is <c>false</c>.
            </summary>
            <value><c>true</c> if collections should be compared; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.Data.ModelEqualityComparer.Equals(Catel.Data.ModelBase,Catel.Data.ModelBase)">
            <summary>
            When overridden in a derived class, determines whether two objects of type <see cref="T:Catel.Data.ModelBase" /> are equal.
            </summary>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>true if the specified objects are equal; otherwise, false.</returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:Catel.Data.ModelEqualityComparer.GetHashCode(Catel.Data.ModelBase)">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <param name="obj">The object for which to get a hash code.</param>
            <returns>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.</returns>
        </member>
        <member name="T:Catel.Data.ObservableObject">
            <summary>
            Very basic class implementing the <see cref="T:System.ComponentModel.INotifyPropertyChanging"/> and <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> interfaces.
            </summary>
        </member>
        <member name="E:Catel.Data.ObservableObject.PropertyChanging">
            <summary>
            Occurs when a property of this object is changing.
            </summary>
        </member>
        <member name="E:Catel.Data.ObservableObject.PropertyChanged">
            <summary>
            Occurs when a property of this object has changed.
            </summary>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanging``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event.
            </summary>
            <typeparam name="TProperty">The type of the object holding the property.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <example>
            <![CDATA[
                RaisePropertyChanging(() => IsDirty);
            ]]>
            </example>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanging(System.String)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanging(System.Object,System.String)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanging(System.Object,Catel.Data.AdvancedPropertyChangingEventArgs)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event.
            <para />
            This is the one and only method that actually raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event. All other
            methods are (and should be) just overloads that eventually call this method.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.OnPropertyChanging(Catel.Data.AdvancedPropertyChangingEventArgs)">
            <summary>
            Called when the <see cref="E:Catel.Data.ObservableObject.PropertyChanging"/> event occurs.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <typeparam name="TProperty">The type of the object holding the property.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <example>
            <![CDATA[
                RaisePropertyChanged(() => IsDirty);
            ]]>
            </example>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <typeparam name="TProperty">The type of the object holding the property.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="newValue">The new value.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <example>
            <![CDATA[
            RaisePropertyChanged(() => IsDirty, true);
            ]]>
            </example>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Object,System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <typeparam name="TProperty">The type of the object holding the property.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <example>
            <![CDATA[
            RaisePropertyChanged(() => IsDirty, false, true);
            ]]>
            </example>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.String)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.String,System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.String,System.Object,System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.Object,System.String)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.Object,System.String,System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.Object,System.String,System.Object,System.Object)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.RaisePropertyChanged(System.Object,Catel.Data.AdvancedPropertyChangedEventArgs)">
            <summary>
            Raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event.
            <para />
            This is the one and only method that actually raises the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event. All other
            methods are (and should be) just overloads that eventually call this method.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Data.ObservableObject.OnPropertyChanged(Catel.Data.AdvancedPropertyChangedEventArgs)">
            <summary>
            Called when the <see cref="E:Catel.Data.ObservableObject.PropertyChanged"/> event occurs.
            </summary>
            <param name="e">The <see cref="T:Catel.Data.AdvancedPropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="T:Catel.Data.PropertyBag">
            <summary>
            Class that is able to manage all properties of a specific object in a thread-safe manner.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyBag.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyBag"/> class.
            </summary>
        </member>
        <member name="E:Catel.Data.PropertyBag.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
        </member>
        <member name="P:Catel.Data.PropertyBag.Item(System.String)">
            <summary>
            Gets or sets the property using the indexer.
            </summary>
            <param name="name">The name.</param>
            <returns>The value of the property.</returns>
        </member>
        <member name="M:Catel.Data.PropertyBag.Import(System.Collections.Generic.Dictionary{System.String,System.Object})">
            <summary>
            Imports the properties in the existing dictionary.
            <para />
            This method will overwrite all existing property values in the property bag.
            </summary>
            <param name="propertiesToImport">The properties to import.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertiesToImport"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.PropertyBag.IsPropertyAvailable(System.String)">
            <summary>
            Determines whether the specified property is available on the property bag, which means it has a value.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns><c>true</c> if the property is available; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyBag.GetAllProperties">
            <summary>
            Gets all the currently available properties in the property bag.
            </summary>
            <returns>A list of all property names and values.</returns>
        </member>
        <member name="M:Catel.Data.PropertyBag.GetPropertyValue``1(System.String)">
            <summary>
            Gets the property value.
            <para />
            If the property is not yet created, the default value will be returned.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="propertyName">Name of the property.</param>
            <returns>The property value or the default value of <typeparamref name="TValue" /> if the property does not exist.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyBag.GetPropertyValue``1(System.String,``0)">
            <summary>
            Gets the property value.
            <para />
            If the property is not yet created, the default value will be returned.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="propertyName">Name of the property.</param>
            <param name="defaultValue">The default value.</param>
            <returns>The property value or the default value of <typeparamref name="TValue" /> if the property does not exist.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyBag.SetPropertyValue(System.String,System.Object)">
            <summary>
            Sets the property value.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyBag.UpdatePropertyValue``1(System.String,System.Func{``0,``0})">
            <summary>
            Updates the property value by retrieving it from the property bag. After invoking the update action,
            the value will be written back to the property bag.
            </summary>
            <typeparam name="TValue">The type of the t value.</typeparam>
            <param name="propertyName">Name of the property.</param>
            <param name="update">The update.</param>
        </member>
        <member name="T:Catel.Data.PropertyData">
            <summary>
            Object that contains all the property data that is used by the <see cref="T:Catel.Data.ModelBase"/> class.
            </summary>
        </member>
        <member name="F:Catel.Data.PropertyData._type">
            <summary>
            Type of the property.
            </summary>
        </member>
        <member name="F:Catel.Data.PropertyData._createDefaultValue">
            <summary>
            Callback to use to create the default value.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyData.#ctor(System.String,System.Type,System.Object,System.Boolean,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyData" /> class.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="defaultValue">Default value of the property.</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="isSerializable">if set to <c>true</c>, the property is serializable.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="isModelBaseProperty">if set to <c>true</c>, the property is declared by the <see cref="T:Catel.Data.ModelBase" />.</param>
            <param name="isCalculatedProperty">if set to <c>true</c>, the property is a calculated property.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.PropertyData.#ctor(System.String,System.Type,System.Func{System.Object},System.Boolean,System.EventHandler{Catel.Data.AdvancedPropertyChangedEventArgs},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyData"/> class.
            </summary>
            <param name="name">Name of the property.</param>
            <param name="type">Type of the property.</param>
            <param name="createDefaultValue">The delegate that creates the default value. If <c>null</c>, a delegate returning the default 
            value (<c>null</c> for reference types, <c>Activator.CreateInstance(type)</c> for reference types).</param>
            <param name="setParent">if set to <c>true</c>, the parent of the property will be set.</param>
            <param name="propertyChangedEventHandler">The property changed event handler.</param>
            <param name="isSerializable">if set to <c>true</c>, the property is serializable.</param>
            <param name="includeInSerialization">if set to <c>true</c>, the property should be included in the serialization.</param>
            <param name="includeInBackup">if set to <c>true</c>, the property should be included in the backup when handling IEditableObject.</param>
            <param name="isModelBaseProperty">if set to <c>true</c>, the property is declared by the <see cref="T:Catel.Data.ModelBase"/>.</param>
            <param name="isCalculatedProperty">if set to <c>true</c>, the property is a calculated property.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="createDefaultValue"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.PropertyData.Name">
            <summary>
            Gets the name of the property.
            </summary>
        </member>
        <member name="P:Catel.Data.PropertyData.Type">
            <summary>
            Gets the type of the property.
            </summary>
        </member>
        <member name="P:Catel.Data.PropertyData.DefaultValue">
            <summary>
            Gets the default value of the property.
            </summary>
        </member>
        <member name="P:Catel.Data.PropertyData.SetParent">
            <summary>
            Gets a value indicating whether to set the parent after creating or deserializing the property.
            </summary>
            <value><c>true</c> if the parent of the should be set after creating or deserializing the property; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Data.PropertyData.PropertyChangedEventHandler">
            <summary>
            Gets a value indicating the property changed event handler.
            </summary>
            <value>The property changed event handler.</value>
        </member>
        <member name="P:Catel.Data.PropertyData.IsSerializable">
            <summary>
            Gets a value indicating whether this property is serializable.
            </summary>
            <value>
            <c>true</c> if this property is serializable; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.PropertyData.IncludeInSerialization">
            <summary>
            Gets a value indicating whether whether the property should be included in the serialization.
            </summary>
            <value>
            <c>true</c> if the property should be included in the serialization; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.PropertyData.IncludeInBackup">
            <summary>
            Gets a value indicating whether whether the property should be included in the backup for IEditableObject.
            </summary>
            <value>
            <c>true</c> if the property should be included in the backup for IEditableObject; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.PropertyData.IsModelBaseProperty">
            <summary>
            Gets a value indicating whether the property is declared by the <see cref="T:Catel.Data.ModelBase"/>.
            </summary>
            <value>
            <c>true</c> if the property is declared by the <see cref="T:Catel.Data.ModelBase"/>; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.PropertyData.IsCalculatedProperty">
            <summary>
            Gets a value indicating whether this is a calculated property.
            </summary>
            <value><c>true</c> if this is a calculated property; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.Data.PropertyData.GetDefaultValue">
            <summary>
            Returns the default value of the property.
            </summary>
            <returns>Default value of the property.</returns>
        </member>
        <member name="M:Catel.Data.PropertyData.GetDefaultValue``1">
            <summary>
            Returns the typed default value of the property.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <returns>Default value of the property.</returns>
        </member>
        <member name="M:Catel.Data.PropertyData.GetPropertyInfo(System.Type)">
            <summary>
            Gets the property information.
            </summary>
            <param name="containingType">Type of the containing.</param>
            <returns>CachedPropertyInfo.</returns>
        </member>
        <member name="T:Catel.Data.PropertyDataManager">
            <summary>
            Property data manager.
            </summary>
        </member>
        <member name="F:Catel.Data.PropertyDataManager.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.Data.PropertyDataManager._propertyData">
            <summary>
            Dictionary containing all the properties per type.
            </summary>
        </member>
        <member name="F:Catel.Data.PropertyDataManager._propertyDataLock">
            <summary>
            Lock object for the <see cref="F:Catel.Data.PropertyDataManager._propertyData"/> field.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Data.PropertyDataManager" /> class.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyDataManager"/> class.
            </summary>
        </member>
        <member name="P:Catel.Data.PropertyDataManager.Default">
            <summary>
            Gets the default instance of the property data manager.
            </summary>
            <value>The default.</value>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.GetCatelTypeInfo(System.Type)">
            <summary>
            Gets the property data type information.
            </summary>
            <param name="type">The type.</param>
            <returns>The <see cref="T:Catel.Data.CatelTypeInfo"/> representing the specified type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.RegisterProperties(System.Type)">
            <summary>
            Registers all the properties for the specified type.
            <para />
            This method can only be called once per type. The <see cref="T:Catel.Data.PropertyDataManager"/> caches
            whether it has already registered the properties once.
            </summary>
            <param name="type">The type to register the properties for.</param>
            <returns>The property data type info.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The properties are not declared correctly.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.RegisterProperty(System.Type,System.String,Catel.Data.PropertyData)">
            <summary>
            Registers a property for a specific type.
            </summary>
            <param name="type">The type for which to register the property.</param>
            <param name="name">The name of the property.</param>
            <param name="propertyData">The property data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.Data.PropertyAlreadyRegisteredException">A property with the same name is already registered.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.UnregisterProperty(System.Type,System.String)">
            <summary>
            Unregisters a property for a specific type.
            </summary>
            <param name="type">The type for which to register the property.</param>
            <param name="name">The name of the property.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.IsPropertyRegistered(System.Type,System.String)">
            <summary>
            Returns whether a specific property is registered.
            </summary>
            <param name="type">The type for which to check whether the property is registered.</param>
            <param name="name">The name of the property.</param>
            <returns>
            True if the property is registered, otherwise false.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.GetPropertyData(System.Type,System.String)">
            <summary>
            Gets the property data.
            </summary>
            <param name="type">The type for which to get the property data.</param>
            <param name="name">The name of the property.</param>
            <returns>The <see cref="T:Catel.Data.PropertyData"/> of the requested property.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Data.PropertyNotRegisteredException">Thrown when the property is not registered.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.IsXmlAttributeNameMappedToProperty(System.Type,System.String)">
            <summary>
            Determines whether the specified XML attribute is mapped to a property name.
            </summary>
            <param name="type">The type.</param>
            <param name="xmlName">Name of the XML.</param>
            <returns>
            <c>true</c> if the XML attribute is mapped to a property name; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.IsPropertyNameMappedToXmlAttribute(System.Type,System.String)">
            <summary>
            Determines whether the specified property is mapped to an XML attribute.
            </summary>
            <param name="type">The type.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
              <c>true</c> if the property name is mapped to an XML attribute; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.MapXmlAttributeNameToPropertyName(System.Type,System.String)">
            <summary>
            Maps the name of the XML attribute to a property name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="xmlName">Name of the XML attribute.</param>
            <returns>
            Name of the property that represents the xml value.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.MapPropertyNameToXmlAttributeName(System.Type,System.String)">
            <summary>
            Maps the name of the property name to an XML attribute name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
            Name of the XML attribute that represents the property value.
            </returns>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.IsXmlElementNameMappedToProperty(System.Type,System.String)">
            <summary>
            Determines whether the specified XML element is mapped to a property name.
            </summary>
            <param name="type">The type.</param>
            <param name="xmlName">Name of the XML.</param>
            <returns>
            <c>true</c> if the XML element is mapped to a property name; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.IsPropertyNameMappedToXmlElement(System.Type,System.String)">
            <summary>
            Determines whether the specified property is mapped to an XML element.
            </summary>
            <param name="type">The type.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
            <c>true</c> if the property name is mapped to an XML element; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.MapXmlElementNameToPropertyName(System.Type,System.String)">
            <summary>
            Maps the name of the XML element to a property name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="xmlName">Name of the XML element.</param>
            <returns>
            Name of the property that represents the xml value.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyDataManager.MapPropertyNameToXmlElementName(System.Type,System.String)">
            <summary>
            Maps the name of the property name to an XML element name.
            </summary>
            <param name="type">The type for which to make the xml name.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
            Name of the XML element that represents the property value.
            </returns>
        </member>
        <member name="T:Catel.Data.PropertyValue">
            <summary>
            Class holding a property value to serialize using the <see cref="T:Catel.Data.ModelBase"/>.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyValue.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyValue"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.PropertyValue.#ctor(Catel.Data.PropertyData,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyValue"/> class.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="keyValuePair">The key value pair.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <c>Key</c> of <paramref name="keyValuePair"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.PropertyValue.#ctor(Catel.Data.PropertyData,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.PropertyValue"/> class.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="name">The name of the property.</param>
            <param name="value">The value of the property.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.Data.PropertyValue.Name">
            <summary>
            Gets or sets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="P:Catel.Data.PropertyValue.Value">
            <summary>
            Gets or sets the value of the property.
            </summary>
            <value>The value of the property.</value>
        </member>
        <member name="P:Catel.Data.PropertyValue.PropertyData">
            <summary>
            Gets the property data.
            </summary>
            <value>The property data.</value>
        </member>
        <member name="P:Catel.Data.PropertyValue.GraphId">
            <summary>
            Gets or sets the graph identifier.
            </summary>
            <value>The graph identifier.</value>
        </member>
        <member name="P:Catel.Data.PropertyValue.GraphRefId">
            <summary>
            Gets or sets the graph reference identifier.
            </summary>
            <value>The graph reference identifier.</value>
        </member>
        <member name="T:Catel.Data.SavableModelBase`1">
            <summary>
            Abstract class that makes the <see cref="T:Catel.Data.ModelBase"/> serializable.
            </summary>
            <typeparam name="T">Type that the class should hold (same as the defined type).</typeparam>
        </member>
        <member name="F:Catel.Data.SavableModelBase`1.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.SavableModelBase`1"/> class.
            </summary>
        </member>
        <member name="P:Catel.Data.SavableModelBase`1.Bytes">
            <summary>
            Gets the bytes of the current binary serialized data object.
            </summary>
            <value>The bytes.</value>
        </member>
        <member name="P:Catel.Data.SavableModelBase`1.Mode">
            <summary>
            Gets the <see cref="T:Catel.Data.SerializationMode"/> of this object.
            </summary>
            <value>The serialization mode.</value>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.ToXml">
            <summary>
            Serializes the object to and xml object.
            </summary>
            <returns><see cref="T:System.Xml.Linq.XDocument"/> containing the serialized data.</returns>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.ToByteArray">
            <summary>
            Serializes the object to a byte array.
            </summary>
            <returns>Byte array containing the serialized data.</returns>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Save(System.String)">
            <summary>
            Saves the object to a file using the default formatting.
            </summary>
            <param name="fileName">Filename of the file that will contain the serialized data of this object.</param>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Save(System.String,Catel.Data.SerializationMode)">
            <summary>
            Saves the object to a file using a specific formatting.
            </summary>
            <param name="fileName">Filename of the file that will contain the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode"/> to use.</param>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Save(System.IO.Stream)">
            <summary>
            Saves the object to a stream using the default formatting.
            </summary>
            <param name="stream">Stream that will contain the serialized data of this object.</param>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Save(System.IO.Stream,Catel.Data.SerializationMode)">
            <summary>
            Saves the object to a stream using a specific formatting.
            </summary>
            <param name="stream">Stream that will contain the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode"/> to use.</param>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Load(System.Xml.Linq.XDocument)">
            <summary>
            Loads the object from an XmlDocument object.
            </summary>
            <param name="xmlDocument">The XML document.</param>
            <returns>Deserialized instance of the object. If the deserialization fails, <c>null</c> is returned.</returns>
        </member>
        <member name="M:Catel.Data.SavableModelBase`1.Load(System.IO.Stream,Catel.Data.SerializationMode)">
            <summary>
            Loads the object from a stream using a specific formatting.
            </summary>
            <param name="stream">Stream that contains the serialized data of this object.</param>
            <param name="mode"><see cref="T:Catel.Data.SerializationMode" /> to use.</param>
            <returns>Deserialized instance of the object. If the deserialization fails, <c>null</c> is returned.</returns>
            <remarks>When enableRedirects is enabled, loading will take more time. Only set
            the parameter to <c>true</c> when the deserialization without redirects fails.</remarks>
        </member>
        <member name="T:Catel.Data.ValidationContext">
            <summary>
            Context containing all validation and provides several methods to gather this information.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationContext._fieldValidations">
            <summary>
            List of field validations.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationContext._businessRuleValidations">
            <summary>
            List of business rule validations.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationContext.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationContext"/> class.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationContext.#ctor(System.Collections.Generic.IEnumerable{Catel.Data.IFieldValidationResult},System.Collections.Generic.IEnumerable{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationContext"/> class.
            </summary>
            <param name="fieldValidationResults">The field validation results. Can be <c>null</c> to add no field validation results.</param>
            <param name="businessRuleValidationResults">The business rule validation results. Can be <c>null</c> to add no business rule validations.</param>
        </member>
        <member name="M:Catel.Data.ValidationContext.#ctor(System.Collections.Generic.IEnumerable{Catel.Data.IFieldValidationResult},System.Collections.Generic.IEnumerable{Catel.Data.IBusinessRuleValidationResult},System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationContext" /> class.
            </summary>
            <param name="fieldValidationResults">The field validation results. Can be <c>null</c> to add no field validation results.</param>
            <param name="businessRuleValidationResults">The business rule validation results. Can be <c>null</c> to add no business rule validations.</param>
            <param name="lastModified">The last modified date/time.</param>
        </member>
        <member name="P:Catel.Data.ValidationContext.LastModified">
            <summary>
            Gets the last modified date/time.
            <para />
            Note that this is just an informational value and should not be used for comparisons. The <see cref="T:System.DateTime"/> 
            is not accurate enough. Use the <c>LastModifiedTicks</c> instead. 
            </summary>
            <value>The last modified date/time.</value>
        </member>
        <member name="P:Catel.Data.ValidationContext.LastModifiedTicks">
            <summary>
            Gets the last modified ticks which is much more precise that the <see cref="P:Catel.Data.ValidationContext.LastModified"/>. Use this value
            to compare last modification ticks on other validation contexts.
            <para />
            Because only full .NET provides a stopwatch, this property is only available in full .NET. All other target frameworks
            will return the <see cref="P:System.DateTime.Ticks"/> which is <c>not</c> reliable.
            </summary>
            <value>The last modified ticks.</value>
        </member>
        <member name="P:Catel.Data.ValidationContext.HasWarnings">
            <summary>
            Gets a value indicating whether this instance contains warnings.
            </summary>
        </member>
        <member name="P:Catel.Data.ValidationContext.HasErrors">
            <summary>
            Gets a value indicating whether this instance contains errors.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetValidationCount">
            <summary>
            Gets the total validation count of all fields and business rules.
            </summary>
            <returns>
            The number of validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetValidationCount(System.Object)">
            <summary>
            Gets the total validation count of all fields and business rules with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of validations available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetValidations">
            <summary>
            Gets all the field and business rule validations.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetValidations(System.Object)">
            <summary>
            Gets all the field and business rule validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetWarningCount">
            <summary>
            Gets the number of field and business rule warnings inside this context.
            </summary>
            <returns>The number of warnings available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetWarningCount(System.Object)">
            <summary>
            Gets the number of field and business rule warnings with the specified tag inside this context.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of warnings available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetWarnings">
            <summary>
            Gets all field and business rule warnings.
            </summary>
            <returns>List of <see cref="T:Catel.Data.IValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetWarnings(System.Object)">
            <summary>
            Gets all field and business rule warnings with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>List of <see cref="T:Catel.Data.IValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetErrorCount">
            <summary>
            Gets the number of field and business rule errors inside this context.
            </summary>
            <returns>The number of errors available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetErrorCount(System.Object)">
            <summary>
            Gets the number of field and business rule errors with the specified tag inside this context.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of errors available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetErrors">
            <summary>
            Gets all field and business rule errors.
            </summary>
            <returns>List of <see cref="T:Catel.Data.IValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetErrors(System.Object)">
            <summary>
            Gets all field and business rule errors with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>List of <see cref="T:Catel.Data.IValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidationCount">
            <summary>
            Gets the field validation count of all fields.
            </summary>
            <returns>The number of field validations available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidationCount(System.Object)">
            <summary>
            Gets the field validation count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of field validations available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidations">
            <summary>
            Gets all the field validations.
            </summary>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidations(System.Object)">
            <summary>
            Gets all the field validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidations(System.String)">
            <summary>
            Gets all the field validations for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldValidations(System.String,System.Object)">
            <summary>
            Gets all the field validations for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarningCount">
            <summary>
            Gets the field warning count of all fields.
            </summary>
            <returns>The number of field warnings available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarningCount(System.Object)">
            <summary>
            Gets the field warning count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of field warnings available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarnings">
            <summary>
            Gets all the field warnings.
            </summary>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarnings(System.Object)">
            <summary>
            Gets all the field warnings with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>List of <see cref="T:Catel.Data.IFieldValidationResult" /> items.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarnings(System.String)">
            <summary>
            Gets all the field warnings for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldWarnings(System.String,System.Object)">
            <summary>
            Gets all the field warnings for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrorCount">
            <summary>
            Gets the field error count of all fields.
            </summary>
            <returns>The number of field errors available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrorCount(System.Object)">
            <summary>
            Gets the field error count of all fields with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>The number of field errors available.</returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrors">
            <summary>
            Gets all the field errors.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrors(System.Object)">
            <summary>
            Gets all the field errors with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrors(System.String)">
            <summary>
            Gets all the field errors for the specified property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetFieldErrors(System.String,System.Object)">
            <summary>
            Gets all the field errors for the specified property name with the specified tag.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IFieldValidationResult"/> items.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleValidationCount">
            <summary>
            Gets the business rule validation count.
            </summary>
            <returns>
            The number of business rule validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleValidationCount(System.Object)">
            <summary>
            Gets the business rule validation count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule validations available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleValidations">
            <summary>
            Gets all the business rule validations.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleValidations(System.Object)">
            <summary>
            Gets all the business rule validations with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleWarningCount">
            <summary>
            Gets the business rule warning count.
            </summary>
            <returns>
            The number of business rule warnings available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleWarningCount(System.Object)">
            <summary>
            Gets the business rule warning count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule warnings available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleWarnings">
            <summary>
            Gets all the business rule warnings.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleWarnings(System.Object)">
            <summary>
            Gets all the business rule warnings with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleErrorCount">
            <summary>
            Gets the business rule error count.
            </summary>
            <returns>
            The number of business rule errors available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleErrorCount(System.Object)">
            <summary>
            Gets the business rule error count with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            The number of business rule errors available.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleErrors">
            <summary>
            Gets all the business rule errors.
            </summary>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.GetBusinessRuleErrors(System.Object)">
            <summary>
            Gets all the business rule errors with the specified tag.
            </summary>
            <param name="tag">The tag.</param>
            <returns>
            List of <see cref="T:Catel.Data.IBusinessRuleValidationResult"/> items.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidationContext.AddFieldValidationResult(Catel.Data.IFieldValidationResult)">
            <summary>
            Adds the field validation result.
            </summary>
            <param name="fieldValidationResult">The field validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.RemoveFieldValidationResult(Catel.Data.IFieldValidationResult)">
            <summary>
            Removes the field validation result.
            </summary>
            <param name="fieldValidationResult">The field validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.AddBusinessRuleValidationResult(Catel.Data.IBusinessRuleValidationResult)">
            <summary>
            Adds the business rule validation result.
            </summary>
            <param name="businessRuleValidationResult">The business rule validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidationContext.RemoveBusinessRuleValidationResult(Catel.Data.IBusinessRuleValidationResult)">
            <summary>
            Removes the business rule validation result.
            </summary>
            <param name="businessRuleValidationResult">The business rule validation result.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResult"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ValidationResult">
            <summary>
            Base class for validation results.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationResult.#ctor(Catel.Data.ValidationResultType,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationResult"/> class.
            </summary>
            <param name="validationResultType">Type of the validation result.</param>
            <param name="message">The message.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResultType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.ValidationResult.ValidationResultType">
            <summary>
            Gets the type of the validation result.
            </summary>
            <value>The type of the validation result.</value>
        </member>
        <member name="P:Catel.Data.ValidationResult.Message">
            <summary>
            Gets or sets the validation result message.
            </summary>
            <value>The message.</value>
            <remarks>
            This value has a public setter so it is possible to customize the message
            in derived classes.
            <para />
            One should be careful and know what they are doing when overwriting an error message.
            </remarks>
        </member>
        <member name="P:Catel.Data.ValidationResult.Tag">
            <summary>
            Gets or sets the tag that allows grouping of validations.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.Data.FieldValidationResult">
            <summary>
            Field validation result.
            </summary>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.#ctor(Catel.Data.PropertyData,Catel.Data.ValidationResultType,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.FieldValidationResult"/> class.
            </summary>
            <param name="property">The property data.</param>
            <param name="validationResultType">Type of the validation result.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="property"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.#ctor(System.String,Catel.Data.ValidationResultType,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.FieldValidationResult"/> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="validationResultType">Type of the validation result.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.Data.FieldValidationResult.PropertyName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateWarning(Catel.Data.PropertyData,System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing a warning.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateWarning(System.String,System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing a warning.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateWarningWithTag(Catel.Data.PropertyData,System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing a warning.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateWarningWithTag(System.String,System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing a warning.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateError(Catel.Data.PropertyData,System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing an error.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateError(System.String,System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing an error.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateErrorWithTag(Catel.Data.PropertyData,System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing an error.
            </summary>
            <param name="propertyData">The property data.</param>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyData"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.FieldValidationResult.CreateErrorWithTag(System.String,System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.FieldValidationResult"/> containing an error.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.FieldValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.BusinessRuleValidationResult">
            <summary>
            Business rule validation result.
            </summary>
        </member>
        <member name="M:Catel.Data.BusinessRuleValidationResult.#ctor(Catel.Data.ValidationResultType,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.BusinessRuleValidationResult"/> class.
            </summary>
            <param name="validationResultType">Type of the validation result.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.BusinessRuleValidationResult.CreateWarning(System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.BusinessRuleValidationResult"/> containing a warning.
            </summary>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.BusinessRuleValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.BusinessRuleValidationResult.CreateWarningWithTag(System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.BusinessRuleValidationResult"/> containing a warning.
            </summary>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.BusinessRuleValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.BusinessRuleValidationResult.CreateError(System.String,System.Object[])">
            <summary>
            Creates a <see cref="T:Catel.Data.BusinessRuleValidationResult"/> containing an error.
            </summary>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>
            The <see cref="T:Catel.Data.BusinessRuleValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="messageFormat"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Data.BusinessRuleValidationResult.CreateErrorWithTag(System.String,System.Object)">
            <summary>
            Creates a <see cref="T:Catel.Data.BusinessRuleValidationResult"/> containing an error.
            </summary>
            <param name="message">The message.</param>
            <param name="tag">The tag.</param>
            <returns>
            The <see cref="T:Catel.Data.BusinessRuleValidationResult"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ValidationSummary">
            <summary>
            The validation summary that contains a momentum of the <see cref="T:Catel.Data.IValidationContext"/>.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationSummary._fieldWarnings">
            <summary>
            The field warnings.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationSummary._fieldErrors">
            <summary>
            The field errors.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationSummary._businessRuleWarnings">
            <summary>
            The business rule warnings.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidationSummary._businessRuleErrors">
            <summary>
            The business rule errors.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidationSummary.#ctor(Catel.Data.IValidationContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationSummary"/> class.
            </summary>
            <param name="validationContext">The validation context to base the summary on.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidationSummary.#ctor(Catel.Data.IValidationContext,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidationSummary"/> class and filters all the validations on the specified tag.
            </summary>
            <param name="validationContext">The validation context to base the summary on.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Data.ValidationSummary.LastModified">
            <summary>
            Gets the last modified date/time.
            <para />
            Note that this is just an informational value and should not be used for comparisons. The <see cref="T:System.DateTime"/> 
            is not accurate enough. Use the <c>LastModifiedTicks</c> instead. 
            </summary>
            <value>The last modified date/time.</value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.LastModifiedTicks">
            <summary>
            Gets the last modified ticks which is much more precise that the <see cref="P:Catel.Data.ValidationSummary.LastModified"/>. Use this value
            to compare last modification ticks on other validation contexts.
            <para />
            Because only full .NET provides a stopwatch, this property is only available in full .NET. All other target frameworks
            will return the <see cref="P:System.DateTime.Ticks"/> which is <c>not</c> reliable.
            </summary>
            <value>The last modified ticks.</value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasWarnings">
            <summary>
            Gets a value indicating whether the summary contains warnings.
            </summary>
            <value>
            <c>true</c> if this instance has warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasErrors">
            <summary>
            Gets a value indicating whether the summary contains errors.
            </summary>
            <value>
            <c>true</c> if this instance has errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasFieldWarnings">
            <summary>
            Gets a value indicating whether the summary contains field warnings.
            </summary>
            <value>
            <c>true</c> if this instance has field warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasFieldErrors">
            <summary>
            Gets a value indicating whether the summary contains field errors.
            </summary>
            <value>
            <c>true</c> if this instance has field errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasBusinessRuleWarnings">
            <summary>
            Gets a value indicating whether the summary contains business rule warnings.
            </summary>
            <value>
            <c>true</c> if this instance has business rule warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.HasBusinessRuleErrors">
            <summary>
            Gets a value indicating whether the summary contains business rule errors.
            </summary>
            <value>
            <c>true</c> if this instance has business rule errors; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.FieldWarnings">
            <summary>
            Gets a collection of field warnings.
            </summary>
            <value>The field warnings.</value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.FieldErrors">
            <summary>
            Gets a collection of field errors.
            </summary>
            <value>The field errors.</value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.BusinessWarnings">
            <summary>
            Gets a collection of business rule warnings.
            </summary>
            <value>The business warnings.</value>
        </member>
        <member name="P:Catel.Data.ValidationSummary.BusinessRuleErrors">
            <summary>
            Gets a collection of business rule errors.
            </summary>
            <value>The business rule errors.</value>
        </member>
        <member name="T:Catel.Data.ValidatorBase`1">
            <summary>
            Base class that implements the <see cref="T:Catel.Data.IValidator"/> interface, but already implements dummy
            methods for the <c>Before</c> and <c>After</c> methods, which are rarely used (but still very
            useful in some cases).
            </summary>
            <typeparam name="TTargetType">The target type.</typeparam>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.Validate(System.Object,Catel.Data.ValidationContext)">
            <summary>
            Validates the specified instance and allows the manipulation of the whole validation context.
            <para />
            This method can be used to manipulate the whole validation context and the implementation of this is enough.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationContext">The validation context.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.Validate(`0,Catel.Data.ValidationContext)">
            <summary>
            Validates the specified instance and allows the manipulation of the whole validation context.
            <para />
            This method can be used to manipulate the whole validation context and the implementation of this is enough.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationContext">The validation context.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before any validation is caused.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousFieldValidationResults">The previous field validation results.</param>
            <param name="previousBusinessRuleValidationResults">The previous business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousFieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousBusinessRuleValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidation(`0,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before any validation is caused.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousFieldValidationResults">The previous field validation results.</param>
            <param name="previousBusinessRuleValidationResults">The previous business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousFieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousBusinessRuleValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its fields.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidateFields(`0,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its fields.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.ValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Validates the fields of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.ValidateFields(`0,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Validates the fields of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <remarks>
            There is no need to check for the arguments, they are already ensured to be correct in the <see cref="T:Catel.Data.ValidatorBase`1"/>.
            </remarks>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidateFields(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just after the specified instance has validated its fields.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidateFields(`0,System.Collections.Generic.List{Catel.Data.IFieldValidationResult})">
            <summary>
            Called just after the specified instance has validated its fields.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its business rules.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.BeforeValidateBusinessRules(`0,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just before the specified instance is about to be validate its business rules.
            </summary>
            <param name="instance">The instance that is about to be validated.</param>
            <param name="previousValidationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="previousValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.ValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Validates the business rules of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.ValidateBusinessRules(`0,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Validates the business rules of the specified instance. The results must be added to the list of validation
            results.
            </summary>
            <param name="instance">The instance to validate.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <remarks>
            There is no need to check for the arguments, they are already ensured to be correct in the <see cref="T:Catel.Data.ValidatorBase`1"/>.
            </remarks>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidateBusinessRules(System.Object,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after the specified instance has validated its business rules.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidateBusinessRules(`0,System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after the specified instance has validated its business rules.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="validationResults">The validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="validationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidation(System.Object,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after all validation has been executed.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="fieldValidationResults">The current field validation results.</param>
            <param name="businessRuleValidationResults">The current business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Data.ValidatorBase`1.AfterValidation(`0,System.Collections.Generic.List{Catel.Data.IFieldValidationResult},System.Collections.Generic.List{Catel.Data.IBusinessRuleValidationResult})">
            <summary>
            Called just after all validation has been executed.
            </summary>
            <param name="instance">The instance that has just been validated.</param>
            <param name="fieldValidationResults">The current field validation results.</param>
            <param name="businessRuleValidationResults">The current business rule validation results.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="fieldValidationResults"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="businessRuleValidationResults"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Data.ValidatorProviderBase">
            <summary>
            Base class that implements the <see cref="T:Catel.Data.IValidatorProvider"/> so only the <see cref="M:Catel.Data.ValidatorProviderBase.GetValidator(System.Type)"/> method
            has to be implemented.
            </summary>
        </member>
        <member name="F:Catel.Data.ValidatorProviderBase._cacheStorage">
            <summary>
            The cache storage.
            </summary>
        </member>
        <member name="M:Catel.Data.ValidatorProviderBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Data.ValidatorProviderBase"/> class. 
            </summary>
        </member>
        <member name="P:Catel.Data.ValidatorProviderBase.UseCache">
            <summary>
            Gets or sets a value indicating whether use cache that make faster the retrieval of the <see cref="T:Catel.Data.IValidator"/> 
            instance for the specified type <see cref="T:System.Type"/>.
            </summary>
            <remarks>By default this property is set to <c>true</c>.</remarks>
        </member>
        <member name="M:Catel.Data.ValidatorProviderBase.Catel#Data#IValidatorProvider#GetValidator``1">
            <summary>
            Gets a validator for the specified target type.
            </summary>
            <typeparam name="TTargetType">
            The target type.
            </typeparam>
            <returns>
            The <see cref="T:Catel.Data.IValidator"/> for the specified type or <c>null</c> if no validator is available for the specified type.
            </returns>
        </member>
        <member name="M:Catel.Data.ValidatorProviderBase.Catel#Data#IValidatorProvider#GetValidator(System.Type)">
            <summary>
            Gets a validator for the specified target type.
            </summary>
            <param name="targetType">
            The target type.
            </param>
            <returns>
            The <see cref="T:Catel.Data.IValidator"/> for the specified type or <c>null</c> if no validator is available for the specified type.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="targetType"/> is <c>null</c>.
            </exception>
        </member>
        <member name="M:Catel.Data.ValidatorProviderBase.GetValidator(System.Type)">
            <summary>
            Provides an access point to allow a custom implementation in order to retrieve the available validator for the specified type.   
            </summary>
            <param name="targetType">
            The target type.
            </param>
            <returns>
            The <see cref="T:Catel.Data.IValidator"/> for the specified type or <c>null</c> if no validator is available for the specified type.
            </returns>
        </member>
        <member name="T:Catel.DeviceType">
            <summary>
            Known device types.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.Phone">
            <summary>
            A windows phone.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.Tablet">
            <summary>
            Tablet.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.Desktop">
            <summary>
            Desktop.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.Xbox">
            <summary>
            An xbox.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.IoT">
            <summary>
            An Internet of Things (IoT) device.
            </summary>
        </member>
        <member name="F:Catel.DeviceType.Unknown">
            <summary>
            An unknown device.
            </summary>
        </member>
        <member name="T:Catel.DeviceHelper">
            <summary>
            Device helper class.
            </summary>
        </member>
        <member name="P:Catel.DeviceHelper.IsDesktop">
            <summary>
            Gets a value indicating whether this code runs on a desktop.
            </summary>
            <value><c>true</c> if this instance is desktop; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.DeviceHelper.IsTablet">
            <summary>
            Gets a value indicating whether this code runs on a tablet.
            </summary>
            <value><c>true</c> if this instance is tablet; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.DeviceHelper.IsPhone">
            <summary>
            Gets a value indicating whether this code runs on a phone.
            </summary>
            <value><c>true</c> if this instance is phone; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.DeviceHelper.IsXbox">
            <summary>
            Gets a value indicating whether this code runs on an xbox.
            </summary>
            <value><c>true</c> if this instance is xbox; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.DeviceHelper.IsIoT">
            <summary>
            Gets a value indicating whether this code runs on an Internet of Things (IoT) device.
            </summary>
            <value><c>true</c> if this instance is io t; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.DeviceHelper.GetDeviceType">
            <summary>
            Gets the type of the device.
            </summary>
            <returns>DeviceType.</returns>
        </member>
        <member name="T:Catel.Disposable">
            <summary>
            Base class for disposable objects.
            </summary>
        </member>
        <member name="M:Catel.Disposable.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:Catel.Disposable"/> class.
            </summary>
        </member>
        <member name="M:Catel.Disposable.Dispose">
            <summary>
            Disposes this instance.
            </summary>
        </member>
        <member name="M:Catel.Disposable.CheckDisposed">
            <summary>
            Checks whether the object is disposed. If so, it will throw the <see cref="T:System.ObjectDisposedException"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The object is disposed.</exception>
        </member>
        <member name="M:Catel.Disposable.DisposeManaged">
            <summary>
            Disposes the managed resources.
            </summary>
        </member>
        <member name="M:Catel.Disposable.DisposeUnmanaged">
            <summary>
            Disposes the unmanaged resources.
            </summary>
        </member>
        <member name="M:Catel.Disposable.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="isDisposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Catel.DisposableToken">
            <summary>
            A reusable disposable token that accepts initialization and uninitialization code.
            </summary>
        </member>
        <member name="M:Catel.DisposableToken.#ctor(System.Object,System.Action{Catel.IDisposableToken{System.Object}},System.Action{Catel.IDisposableToken{System.Object}},System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.DisposableToken" /> class.
            </summary>
            <param name="instance">The instance.</param>
            <param name="initialize">The initialize action.</param>
            <param name="dispose">The dispose action.</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="T:Catel.DisposableToken`1">
            <summary>
            A reusable disposable token that accepts initialization and uninitialization code.
            </summary>
        </member>
        <member name="M:Catel.DisposableToken`1.#ctor(`0,System.Action{Catel.IDisposableToken{`0}},System.Action{Catel.IDisposableToken{`0}},System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.DisposableToken`1" /> class.
            </summary>
            <param name="instance">The instance.</param>
            <param name="initialize">The initialize action that will be called with (token).</param>
            <param name="dispose">The dispose action that will be called with (instance, tag).</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="P:Catel.DisposableToken`1.Instance">
            <summary>
            Gets the instance attached to this token.
            </summary>
            <value>The instance.</value>
        </member>
        <member name="P:Catel.DisposableToken`1.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="M:Catel.DisposableToken`1.Dispose">
            <summary>
            Disposes this instance.
            </summary>
        </member>
        <member name="T:Catel.Enum`1">
            <summary>
            Generic enumeration wrapper.
            </summary>
            <typeparam name="TEnum">Type of the enumeration to wrap.</typeparam>
        </member>
        <member name="M:Catel.Enum`1.ToList">
            <summary>
            Converts an enumaration to a list.
            </summary>
            <returns><see cref="T:System.Collections.Generic.List`1"/> containing all the values.</returns>
        </member>
        <member name="M:Catel.Enum`1.ConvertFromOtherEnumValue(System.Object)">
            <summary>
            Converts a specific enum value from one specific enum type to another enum type by it's name.
            <para/>
            For example, to convert <c>Catel.Services.CameraType</c> to <c>Microsoft.Devices.CameraType</c>, use the
            following code:
            <para/>
            ConvertEnum&lt;Microsoft.Devices.CameraType&gt;(Catel.Services.CameraType.Primary);
            </summary>
            <param name="inputEnumValue">The input enum value.</param>
            <returns>The converted enum value.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="inputEnumValue"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="inputEnumValue"/> is not of type <see cref="T:System.Enum"/>.</exception>
            <exception cref="T:System.ArgumentException">The value of <paramref name="inputEnumValue"/> cannot be converted to a value of <typeparamref name="TEnum"/>.</exception>
        </member>
        <member name="M:Catel.Enum`1.GetName(System.Int32)">
            <summary>
            Gets the name.
            </summary>
            <param name="value">The value.</param>
            <returns>The name of the value.</returns>
        </member>
        <member name="M:Catel.Enum`1.GetName(System.Int64)">
            <summary>
            Gets the name.
            </summary>
            <param name="value">The value.</param>
            <returns>The name of the value.</returns>
        </member>
        <member name="M:Catel.Enum`1.GetNames">
            <summary>
            Gets the names.
            </summary>
            <returns>Array of names of an enum.</returns>
        </member>
        <member name="M:Catel.Enum`1.GetValues">
            <summary>
            Gets the values.
            </summary>
            <returns><see cref="T:System.Collections.Generic.List`1"/> of values.</returns>
        </member>
        <member name="M:Catel.Enum`1.GetFields(System.Type)">
            <summary>
            Gets the fields from an enum.
            </summary>
            <param name="enumType">Type of the enum.</param>
            <returns>Array of <see cref="T:System.Reflection.FieldInfo"/> values.</returns>
        </member>
        <member name="M:Catel.Enum`1.Parse(System.String,System.Boolean)">
            <summary>
            Parses the specified input.
            </summary>
            <param name="input">The input.</param>
            <param name="ignoreCase">if set to <c>true</c>, the case should be ignored.</param>
            <returns>The enum value.</returns>
        </member>
        <member name="M:Catel.Enum`1.TryParse(System.String,System.Nullable{`0}@)">
            <summary>
            Tries to parse an enum value name.
            </summary>
            <param name="input">The input.</param>
            <param name="result">The result.</param>
            <returns><c>true</c> if successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Enum`1.TryParse(System.String,`0@)">
            <summary>
            Tries to parse an enum value name.
            </summary>
            <param name="input">The input.</param>
            <param name="result">The result.</param>
            <returns><c>true</c> if successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Enum`1.TryParse(System.String,System.Boolean,System.Nullable{`0}@)">
            <summary>
            Tries to parse an enum value name.
            </summary>
            <param name="input">The input.</param>
            <param name="ignoreCase">if set to <c>true</c>, the case will be ignored.</param>
            <param name="result">The result.</param>
            <returns><c>true</c> if successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Enum`1.TryParse(System.String,System.Boolean,`0@)">
            <summary>
            Tries to parse an enum value name.
            </summary>
            <param name="input">The input.</param>
            <param name="ignoreCase">if set to <c>true</c>, the case will be ignored.</param>
            <param name="result">The result.</param>
            <returns><c>true</c> if successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Enum`1.GetName(`0)">
            <summary>
            Gets the name.
            </summary>
            <param name="value">The value.</param>
            <returns>The name of the value.</returns>
        </member>
        <member name="T:Catel.Enum`1.DataBinding">
            <summary>
            DataBinding class.
            </summary>
        </member>
        <member name="T:Catel.Enum`1.DataBinding.FormatEnumName">
            <summary>
            Delegate used for formatting an enum name.
            </summary>
            <param name="value">The value to format.</param>
            <returns>String containing the enum name.</returns>
        </member>
        <member name="T:Catel.Enum`1.DataBinding.InternalBindableEnum">
            <summary>
            Internal bindable enum.
            </summary>
        </member>
        <member name="F:Catel.Enum`1.DataBinding.InternalBindableEnum._name">
            <summary>
            Name of the internal bindable enum.
            </summary>
        </member>
        <member name="F:Catel.Enum`1.DataBinding.InternalBindableEnum._value">
            <summary>
            Value of the internal bindable enum.
            </summary>
        </member>
        <member name="M:Catel.Enum`1.DataBinding.InternalBindableEnum.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Enum`1.DataBinding.InternalBindableEnum"/> class.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:Catel.Enum`1.DataBinding.InternalBindableEnum.#ctor(`0,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Enum`1.DataBinding.InternalBindableEnum"/> class.
            </summary>
            <param name="value">The value of the internal bindable enum.</param>
            <param name="name">The name of the internal bindable enum.</param>
        </member>
        <member name="P:Catel.Enum`1.DataBinding.InternalBindableEnum.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name of the enum.</value>
        </member>
        <member name="P:Catel.Enum`1.DataBinding.InternalBindableEnum.Value">
            <summary>
            Gets the value.
            </summary>
            <value>The value of the enum.</value>
        </member>
        <member name="M:Catel.Enum`1.DataBinding.InternalBindableEnum.CompareTo(Catel.IBindableEnum{`0})">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <param name="other">An object to compare with this object.</param>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared.
            The return value has the following meanings: Value Meaning Less than zero This object is less
            than the other parameter.  Zero This object is equal to other. Greater than zero This object is
            greater than other.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.DataBinding.InternalBindableEnum.Equals(Catel.IBindableEnum{`0})">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            	<c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.NullReferenceException">
            The <paramref name="other"/> parameter is null.
            </exception>
        </member>
        <member name="T:Catel.Enum`1.Flags">
            <summary>
            Flags class.
            </summary>
        </member>
        <member name="M:Catel.Enum`1.Flags.ClearFlag(`0,`0)">
            <summary>
            Clears the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToClear">The flag to clear.</param>
            <returns>Flags without the flag that should be cleared.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.ClearFlag(System.Int32,`0)">
            <summary>
            Clears the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToClear">The flag to clear.</param>
            <returns>Flags without the flag that should be cleared.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.ClearFlag(System.Int64,`0)">
            <summary>
            Clears the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToClear">The flag to clear.</param>
            <returns>Flags without the flag that should be cleared.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.ClearFlag(System.Int32,System.Int32)">
            <summary>
            Clears the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToClear">The flag to clear.</param>
            <returns>Flags without the flag that should be cleared.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.ClearFlag(System.Int64,System.Int64)">
            <summary>
            Clears the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToClear">The flag to clear.</param>
            <returns>Flags without the flag that should be cleared.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.IsFlagSet(`0,`0)">
            <summary>
            Determines whether a specific flag is set.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToFind">The flag to find.</param>
            <returns>
            	<c>true</c> if the flag is set; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.IsFlagSet(System.Int32,`0)">
            <summary>
            Determines whether a specific flag is set.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToFind">The flag to find.</param>
            <returns>
            	<c>true</c> if the flag is set; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.IsFlagSet(System.Int64,`0)">
            <summary>
            Determines whether a specific flag is set.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToFind">The flag to find.</param>
            <returns>
            	<c>true</c> if the flag is set; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.IsFlagSet(System.Int32,System.Int32)">
            <summary>
            Determines whether a specific flag is set.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToFind">The flag to find.</param>
            <returns>
            	<c>true</c> if the flag is set; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.IsFlagSet(System.Int64,System.Int64)">
            <summary>
            Determines whether a specific flag is set.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToFind">The flag to find.</param>
            <returns>
            	<c>true</c> if the flag is set; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SetFlag(`0,`0)">
            <summary>
            Sets the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSet">The flag to set.</param>
            <returns>Flags with the flag that should be set.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SetFlag(System.Int32,`0)">
            <summary>
            Sets the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSet">The flag to set.</param>
            <returns>Flags with the flag that should be set.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SetFlag(System.Int64,`0)">
            <summary>
            Sets the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSet">The flag to set.</param>
            <returns>Flags with the flag that should be set.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SetFlag(System.Int32,System.Int32)">
            <summary>
            Sets the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSet">The flag to set.</param>
            <returns>Flags with the flag that should be set.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SetFlag(System.Int64,System.Int64)">
            <summary>
            Sets the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSet">The flag to set.</param>
            <returns>Flags with the flag that should be set.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SwapFlag(`0,`0)">
            <summary>
            Swaps the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSwap">The flag to swap.</param>
            <returns>Flags with the flag swapped that should be swapped.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SwapFlag(System.Int32,`0)">
            <summary>
            Swaps the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSwap">The flag to swap.</param>
            <returns>Flags with the flag swapped that should be swapped.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SwapFlag(System.Int64,`0)">
            <summary>
            Swaps the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSwap">The flag to swap.</param>
            <returns>Flags with the flag swapped that should be swapped.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SwapFlag(System.Int32,System.Int32)">
            <summary>
            Swaps the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSwap">The flag to swap.</param>
            <returns>Flags with the flag swapped that should be swapped.</returns>
        </member>
        <member name="M:Catel.Enum`1.Flags.SwapFlag(System.Int64,System.Int64)">
            <summary>
            Swaps the flag.
            </summary>
            <param name="flags">The flags.</param>
            <param name="flagToSwap">The flag to swap.</param>
            <returns>Flags with the flag swapped that should be swapped.</returns>
        </member>
        <member name="T:Catel.IBindableEnum`1">
            <summary>
            Bindable enumeration.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
        </member>
        <member name="P:Catel.IBindableEnum`1.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name of the bindable enum.</value>
        </member>
        <member name="P:Catel.IBindableEnum`1.Value">
            <summary>
            Gets the value.
            </summary>
            <value>The value of the bindable enum.</value>
        </member>
        <member name="T:Catel.EventHandlerExtensions">
            <summary>
            Extensions for event handlers.
            </summary>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke(System.EventHandler,System.Object)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner with <see cref="F:System.EventArgs.Empty"/>
            as parameter for the event args. Where normally one has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = MyEvent;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            MyEvent.SafeInvoke(this);
            </code>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke(System.EventHandler{System.EventArgs},System.Object)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner with <see cref="F:System.EventArgs.Empty"/>
            as parameter for the event args. Where normally one has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = MyEvent;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            MyEvent.SafeInvoke(this);
            </code>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke(System.EventHandler,System.Object,System.EventArgs)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner with <see cref="F:System.EventArgs.Empty"/>
            as parameter for the event args. Where normally one has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = MyEvent;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            MyEvent.SafeInvoke(this);
            </code>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke``1(System.EventHandler{``0},System.Object,``0)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner. Where normally one
            has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = MyEvent;
            if (handler != null)
            {
                handler(this, e);
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            MyEvent.SafeInvoke(this, e);
            </code>
            </summary>
            <typeparam name="TEventArgs">The type of the <see cref="T:System.EventArgs"/> class.</typeparam>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke(System.ComponentModel.PropertyChangedEventHandler,System.Object,System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner. Where normally one
            has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, e, new PropertyChangedEventArgs("propertyName"));
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            PropertyChanged.SafeInvoke(this, e, new PropertyChangedEventArgs("propertyName"));
            </code>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SafeInvoke(System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Invokes the specified <paramref name="handler"/> in a thread-safe manner. Where normally one
            has to write the following code:
            <para />
            <code>
            <![CDATA[
            var handler = CollectionChanged;
            if (handler != null)
            {
                handler(this, e, new NotifyCollectionChangedEventArgs(...));
            }
            ]]>
            </code>
            <para />
            One can now write:
            <para />
            <code>
            CollectionChanged.SafeInvoke(this, e, new NotifyCollectionChangedEventArgs(...));
            </code>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <returns><c>true</c> if the event handler was not <c>null</c>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EventHandlerExtensions.SplitInvoke(System.Delegate,System.Object[])">
            <summary>
            Invokes the registered handlers one by one. This way it is easy to determine which subscription on a specific event handler
            is causing issues.
            </summary>
            <param name="handler">The handler.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="T:Catel.AsyncEventHandler`1">
            <summary>
            Represents the asynchronous method that will handle an event.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">An System.EventArgs that contains the event data.</param>
            <typeparam name="TEventArgs">The type of the event data generated by the event.</typeparam>
        </member>
        <member name="T:Catel.AsyncEventHandlerExtensions">
            <summary>
            Extensions for asynchronous event handlers.
            </summary>
        </member>
        <member name="M:Catel.AsyncEventHandlerExtensions.SafeInvoke``1(Catel.AsyncEventHandler{``0},System.Object,``0)">
            <summary>
            Invokes the specified <paramref name="handler"/>
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <typeparam name="TEventArgs">The type of the <see cref="T:System.EventArgs"/> class.</typeparam>
            <returns></returns>
        </member>
        <member name="M:Catel.AsyncEventHandlerExtensions.SafeInvokeAsync(Catel.AsyncEventHandler{System.EventArgs},System.Object,System.Boolean)">
            <summary>
            Invokes the specified <paramref name="handler" />
            </summary>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="allowParallelExecution">if set to <c>true</c>, allow parallel invocation of the handlers.</param>
            <returns>Task&lt;System.Boolean&gt;.</returns>
        </member>
        <member name="M:Catel.AsyncEventHandlerExtensions.SafeInvokeAsync``1(Catel.AsyncEventHandler{``0},System.Object,``0,System.Boolean)">
            <summary>
            Invokes the specified <paramref name="handler" />
            </summary>
            <typeparam name="TEventArgs">The type of the <see cref="T:System.EventArgs" /> class.</typeparam>
            <param name="handler">The handler.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event args.</param>
            <param name="allowParallelExecution">if set to <c>true</c>, allow parallel invocation of the handlers.</param>
            <returns>Task&lt;System.Boolean&gt;.</returns>
        </member>
        <member name="T:Catel.ExceptionHandling.BufferedEventArgs">
            <summary>
            
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.BufferedEventArgs.#ctor(System.Exception,System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ExceptionHandling.BufferedEventArgs"/> class.
            </summary>
            <param name="bufferedException">The buffered exception.</param>
            <param name="dateTime">the date time that indicates when the buffering was invoked.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="bufferedException"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.ExceptionHandling.BufferedEventArgs.BufferedException">
            <summary>
            Gets the buffered exception.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.BufferedEventArgs.DateTime">
            <summary>
            Gets the date time that indicates when the buffering was invoked.
            </summary>
        </member>
        <member name="T:Catel.ExceptionHandling.RetryingEventArgs">
            <summary>
            
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.RetryingEventArgs.#ctor(System.Int32,System.TimeSpan,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ExceptionHandling.RetryingEventArgs"/> class.
            </summary>
            <param name="currentRetryCount">The current retry attempt count.</param>
            <param name="delay">The delay that indicates how long the current thread will be suspended before the next iteration is invoked.</param>
            <param name="lastException">The exception that caused the retry conditions to occur.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="lastException"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.ExceptionHandling.RetryingEventArgs.CurrentRetryCount">
            <summary>
            Gets the current retry count.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.RetryingEventArgs.Delay">
            <summary>
            Gets the delay that indicates how long the current thread will be suspended before the next iteration is invoked.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.RetryingEventArgs.LastException">
            <summary>
            Gets the exception that caused the retry conditions to occur.
            </summary>
        </member>
        <member name="T:Catel.ExceptionHandling.ExceptionHandler">
            <summary>
            This implements the exception treatment mechanics.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionHandler.#ctor(System.Type,System.Action{System.Exception})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ExceptionHandling.ExceptionHandler" /> class.
            </summary>
            <param name="exceptionTypeType">Type of the exception.</param>
            <param name="action">The action to execute.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionTypeType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionTypeType" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.ExceptionHandling.ExceptionHandler.ExceptionType">
            <summary>
            Gets the type of the handled exception.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.ExceptionHandler.BufferPolicy">
            <summary>
            Gets or sets the buffer policy.
            </summary>
            <value>
            The buffer policy.
            </value>
        </member>
        <member name="P:Catel.ExceptionHandling.ExceptionHandler.RetryPolicy">
            <summary>
            Gets or sets the retry policy.
            </summary>
            <value>
            The retry policy.
            </value>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionHandler.Handle(System.Exception)">
            <summary>
            Handles the exception using the action that was passed into the constructor.
            </summary>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ExceptionHandling.ExceptionService">
            <summary>
            The exception service allows the usage of the Try/Catch mechanics. This means that this service provides possibilities
            to handle all exception types previously registered.
            </summary>
        </member>
        <member name="F:Catel.ExceptionHandling.ExceptionService.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.ExceptionHandling.ExceptionService._default">
            <summary>
            The static instance of the exception service.
            </summary>
        </member>
        <member name="E:Catel.ExceptionHandling.ExceptionService.RetryingAction">
            <summary>
            Occurs when an action is retrying.
            </summary>
        </member>
        <member name="E:Catel.ExceptionHandling.ExceptionService.ExceptionBuffered">
            <summary>
            Occurs when an exception is buffered. 
            </summary>
        </member>
        <member name="F:Catel.ExceptionHandling.ExceptionService._exceptionCounter">
            <summary>
            The _exception counts
            </summary>
        </member>
        <member name="F:Catel.ExceptionHandling.ExceptionService._exceptionHandlers">
            <summary>
            The _exception handlers
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.ExceptionService.Default">
            <summary>
            Gets the default instance of the exception service.
            </summary>
            <value>The default instance.</value>
        </member>
        <member name="P:Catel.ExceptionHandling.ExceptionService.ExceptionHandlers">
            <summary>
            Gets the exception handlers.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.IsExceptionRegistered``1">
            <summary>
            Determines whether the specified exception type is registered.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns>
              <c>true</c> if the exception type is registered; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.IsExceptionRegistered(System.Type)">
            <summary>
            Determines whether the specified exception type is registered.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <returns>
              <c>true</c> if the specified exception type is registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref ref="exceptionType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="exceptionType" /> is not of type <see cref="T:System.Exception"/>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.GetHandler(System.Type)">
            <summary>
            Gets the exception handler for the specified exception type.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <returns>
            The exception handler.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref ref="exceptionType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="exceptionType" /> is not of type <see cref="T:System.Exception"/>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.GetHandler``1">
            <summary>
            Gets the exception handler for the specified exception type.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns>
            The exception handler.
            </returns>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.Register``1(System.Action{``0})">
            <summary>
            Registers a specific exception including the handler.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="handler">The action to execute when the exception occurs.</param>
            <returns>The handler to use.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.Unregister``1">
            <summary>
            Unregisters a specific exception for handling.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns><c>true</c> if the exception is unsubscribed; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.HandleException(System.Exception)">
            <summary>
            Handles the specified exception if possible.
            </summary>
            <param name="exception">The exception to handle.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
            <returns><c>true</c> if the exception is handled; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.Process(System.Action)">
            <summary>
            Processes the specified action.
            <para />
            If the exception could not be handled safely by this service, it will throw the exception.
            </summary>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.Process``1(System.Func{``0})">
            <summary>
            Processes the specified action.
            <para />
            If the exception could not be handled safely by this service, it will throw the exception.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessWithRetry``1(System.Func{``0})">
            <summary>
            Processes the specified action with possibilty to retry on error.
            </summary>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessWithRetryAsync``1(System.Func{System.Threading.Tasks.Task{``0}})">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessAsync(System.Action,System.Threading.CancellationToken)">
            <summary>
            Processes the specified action. The action will be executed asynchrounously.
            </summary>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessAsync(System.Threading.Tasks.Task)">
            <summary>
            Processes the specified action.
            </summary>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessAsync(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Processes the specified action.
            </summary>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessAsync``1(System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Processes the specified action. The action will be executed asynchrounously.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.ProcessAsync``1(System.Func{System.Threading.Tasks.Task{``0}})">
            <summary>
            Processes the specified action.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.OnRetryingAction(System.Int32,System.Exception,System.TimeSpan)">
            <summary>
            Notifies the subscribers whenever a retry event occurs.
            </summary>
            <param name="retryCount">The current retry attempt count.</param>
            <param name="lastError">The exception that caused the retry conditions to occur.</param>
            <param name="delay">The delay that indicates how long the current thread will be suspended before the next iteration is invoked.</param>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionService.OnExceptionBuffered(System.Exception,System.DateTime)">
            <summary>
            Notifies the subscribers whenever a exception buffered event occurs.
            </summary>
            <param name="bufferedException">The buffered exception</param>
            <param name="dateTime">The date and time when the event occurs.</param>
        </member>
        <member name="T:Catel.ExceptionHandling.ExceptionHandlerExtensions">
            <summary>
            The exception handler extensions.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionHandlerExtensions.UsingTolerance(Catel.ExceptionHandling.IExceptionHandler,System.Int32,System.TimeSpan)">
            <summary>
            Should buffer the exceptions using the specified policy tolerance.
            </summary>
            <param name="exceptionHandler">The exception handler.</param>
            <param name="numberOfTimes">The number of times before handling the exception.</param>
            <param name="interval">The interval.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionHandler" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="numberOfTimes"/> is out of range.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionHandlerExtensions.OnErrorRetry(Catel.ExceptionHandling.IExceptionHandler,System.Int32,System.TimeSpan)">
            <summary>
            Should retry the action on error using the provided policy.
            </summary>
            <param name="exceptionHandler">The exception handler.</param>
            <param name="numberOfTimes">The number of times to attempts.</param>
            <param name="interval">The interval between two attempts.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionHandler"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="numberOfTimes"/> is larger than <c>1</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionHandlerExtensions.OnErrorRetryImmediately(Catel.ExceptionHandling.IExceptionHandler,System.Int32)">
            <summary>
            Should retry action on error immediately.
            </summary>
            <param name="exceptionHandler">The exception handler.</param>
            <param name="numberOfTimes">The number of times.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionHandler"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="numberOfTimes"/> is larger than <c>1</c>.</exception>
        </member>
        <member name="T:Catel.ExceptionHandling.ExceptionServiceExtensions">
            <summary>
            The exception service extensions.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.HandleExceptionAsync(Catel.ExceptionHandling.IExceptionService,System.Exception,System.Threading.CancellationToken)">
            <summary>
            Handles asynchounously the specified exception if possible.
            </summary>
            <param name="exceptionService">The exception service.</param>
            <param name="exception">The exception to handle.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionService"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
            <returns><c>true</c> if the exception is handled; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.ProcessWithRetryAsync(Catel.ExceptionHandling.IExceptionService,System.Threading.Tasks.Task)">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <param name="exceptionService">The exception service.</param>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptionService"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.ProcessWithRetryAsync(Catel.ExceptionHandling.IExceptionService,System.Action,System.Threading.CancellationToken)">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <param name="exceptionService">The exception service.</param>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.ProcessWithRetryAsync``1(Catel.ExceptionHandling.IExceptionService,System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="exceptionService">The exception service.</param>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.ProcessWithRetryAsync(Catel.ExceptionHandling.IExceptionService,System.Func{System.Threading.Tasks.Task})">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <param name="exceptionService">The exception service.</param>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.ExceptionServiceExtensions.ProcessWithRetry(Catel.ExceptionHandling.IExceptionService,System.Action)">
            <summary>
            Processes the specified action with possibilty to retry on error.
            </summary>
            <param name="exceptionService">The exception service.</param>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ExceptionHandling.IBufferPolicy">
            <summary>
            Represent the buffer policy interface in exception handling
            </summary>
        </member>
        <member name="T:Catel.ExceptionHandling.IExceptionHandler">
            <summary>
            Interface that describes a single Exception handler.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.IExceptionHandler.ExceptionType">
            <summary>
            Gets the type of the handled exception.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.IExceptionHandler.BufferPolicy">
            <summary>
            Gets or sets the buffer policy.
            </summary>
            <value>
            The buffer policy.
            </value>
        </member>
        <member name="P:Catel.ExceptionHandling.IExceptionHandler.RetryPolicy">
            <summary>
            Gets or sets the retry policy.
            </summary>
            <value>
            The retry policy.
            </value>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionHandler.Handle(System.Exception)">
            <summary>
            Handles the exception using the action that was passed into the constructor.
            </summary>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ExceptionHandling.IExceptionService">
            <summary>
            This interface describes a simple Exception service.
            </summary>
        </member>
        <member name="E:Catel.ExceptionHandling.IExceptionService.RetryingAction">
            <summary>
            Occurs when an action is retrying.
            </summary>
        </member>
        <member name="E:Catel.ExceptionHandling.IExceptionService.ExceptionBuffered">
            <summary>
            Occurs when an exception is buffered. 
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.IExceptionService.ExceptionHandlers">
            <summary>
            Gets the exception handlers.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.IsExceptionRegistered``1">
            <summary>
            Determines whether the specified exception type is registered.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns>
              <c>true</c> if the exception type is registered; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.IsExceptionRegistered(System.Type)">
            <summary>
            Determines whether the specified exception type is registered.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <returns>
              <c>true</c> if the specified exception type is registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref ref="exceptionType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="exceptionType" /> is not of type <see cref="T:System.Exception"/>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.GetHandler(System.Type)">
            <summary>
            Gets the exception handler for the specified exception type.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <returns>
              The exception handler.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref ref="exceptionType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="exceptionType" /> is not of type <see cref="T:System.Exception"/>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.GetHandler``1">
            <summary>
            Gets the exception handler for the specified exception type.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns>
              The exception handler.
            </returns>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.Register``1(System.Action{``0})">
            <summary>
            Registers a specific exception including the handler.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="handler">The action to execute when the exception occurs.</param>
            <returns>The handler to use.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.Unregister``1">
            <summary>
            Unregisters a specific exception for handling.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <returns><c>true</c> if the exception is unsubscribed; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.HandleException(System.Exception)">
            <summary>
            Handles the specified exception if possible.
            </summary>
            <param name="exception">The exception to handle.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
            <returns><c>true</c> if the exception is handled; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.Process(System.Action)">
            <summary>
            Processes the specified action.
            </summary>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessAsync(System.Threading.Tasks.Task)">
            <summary>
            Processes the specified action.
            </summary>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.Process``1(System.Func{``0})">
            <summary>
            Processes the specified action.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessAsync``1(System.Func{System.Threading.Tasks.Task{``0}})">
            <summary>
            Processes the specified action.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessAsync(System.Action,System.Threading.CancellationToken)">
            <summary>
            Processes the specified action. The action will be executed asynchrounously.
            </summary>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessAsync(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Processes the specified action.
            </summary>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessAsync``1(System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Processes the specified action. The action will be executed asynchrounously.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessWithRetry``1(System.Func{``0})">
            <summary>
            Processes the specified action with possibilty to retry on error.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.IExceptionService.ProcessWithRetryAsync``1(System.Func{System.Threading.Tasks.Task{``0}})">
            <summary>
            Processes asynchrounously the specified action with possibilty to retry on error.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ExceptionHandling.IPolicy">
            <summary>
            Represent the base policy interface in exception handling
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.IPolicy.NumberOfTimes">
            <summary>
            Gets the number of times.
            </summary>
            <value>
            The number of times.
            </value>
        </member>
        <member name="P:Catel.ExceptionHandling.IPolicy.Interval">
            <summary>
            Gets or sets the interval.
            </summary>
            <value>
            The interval.
            </value>
        </member>
        <member name="T:Catel.ExceptionHandling.IRetryPolicy">
            <summary>
            Represents the retry policy.
            </summary>
        </member>
        <member name="T:Catel.ExceptionHandling.BufferPolicy">
            <summary>
            Represent the buffer policy implementation in exception handling
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.BufferPolicy.#ctor(System.Int32,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ExceptionHandling.BufferPolicy"/> class.
            </summary>
            <param name="numberOfTimes">The number of times.</param>
            <param name="interval">The interval.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="numberOfTimes"/> is out of range.</exception>
        </member>
        <member name="M:Catel.ExceptionHandling.BufferPolicy.ToString">
            <summary>
            The overrided ToString()
            </summary>
            <returns></returns>
        </member>
        <member name="T:Catel.ExceptionHandling.PolicyBase">
            <summary>
            The policy base.
            </summary>
        </member>
        <member name="P:Catel.ExceptionHandling.PolicyBase.NumberOfTimes">
            <summary>
            Gets the number of times.
            </summary>
            <value>
            The number of times.
            </value>
        </member>
        <member name="P:Catel.ExceptionHandling.PolicyBase.Interval">
            <summary>
            Gets the interval.
            </summary>
            <value>
            The interval.
            </value>
        </member>
        <member name="T:Catel.ExceptionHandling.RetryPolicy">
            <summary>
            Represents the retry policy.
            </summary>
        </member>
        <member name="M:Catel.ExceptionHandling.RetryPolicy.#ctor(System.Int32,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.ExceptionHandling.RetryPolicy"/> class.
            </summary>
            <param name="numberOfTimes">The number of times.</param>
            <param name="interval">The interval.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="numberOfTimes"/> is larger than <c>1</c>.</exception>
        </member>
        <member name="T:Catel.MustBeImplementedException">
            <summary>
            Exception in case the functionality is not yet implemented but is supported in the current platform.
            <para />
            Unfortunately, the team has limited resources and must focus on the most requested features. Feel free to
            create a pull request or notify the team that you are missing this feature.
            </summary>
        </member>
        <member name="M:Catel.MustBeImplementedException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.NotSupportedInPlatformException"/> class.
            </summary>
        </member>
        <member name="T:Catel.NotSupportedInPlatformException">
            <summary>
            Exception in case the functionality is not supported in the current platform.
            <para />
            Unfortunately, some platforms miss a lot of functionality. When a feature is not supported in Catel, 
            this is because the .NET Framework (or actually the specified platform) does not allow the code to handle 
            that specific feature.
            </summary>
        </member>
        <member name="M:Catel.NotSupportedInPlatformException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.NotSupportedInPlatformException"/> class.
            </summary>
        </member>
        <member name="M:Catel.NotSupportedInPlatformException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.NotSupportedInPlatformException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Catel.NotSupportedInPlatformException.#ctor(System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.NotSupportedInPlatformException"/> class.
            </summary>
            <param name="featureFormat">The feature format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="P:Catel.NotSupportedInPlatformException.Reason">
            <summary>
            Get the reason why the feature is not supported.
            </summary>
            <value>The reason why the feature is missing.</value>
        </member>
        <member name="P:Catel.NotSupportedInPlatformException.Platform">
            <summary>
            Gets the platform.
            </summary>
            <value>The platform.</value>
        </member>
        <member name="T:Catel.ByteArrayExtensions">
            <summary>
            Extensions for byte arrays.
            </summary>
        </member>
        <member name="M:Catel.ByteArrayExtensions.GetUtf8String(System.Byte[])">
            <summary>
            Gets the UTF8 string from the byte array.
            </summary>
            <param name="data">The data.</param>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.ByteArrayExtensions.GetString(System.Byte[],System.Text.Encoding)">
            <summary>
            Gets the string from the byte array using the specified encoding.
            </summary>
            <param name="data">The data.</param>
            <param name="encoding">The encoding.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.ExceptionExtensions">
            <summary>
            Extension methods for the <see cref="T:System.Exception"/> class.
            </summary>
        </member>
        <member name="M:Catel.ExceptionExtensions.IsCritical(System.Exception)">
            <summary>
            Determines whether the specified exception is critical (meaning the application should shut down).
            </summary>
            <param name="ex">The exception.</param>
            <returns><c>true</c> if the specified exception is critical; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ExceptionExtensions.GetLowestInnerException(System.Exception)">
             <summary>
             Gets the lowest inner exception of specified exception.
             </summary>
             <param name="exception">The exception.</param>
             <returns>Lowest inner exception.</returns>
            <exception cref="T:System.ArgumentNullException">The <param ref="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExceptionExtensions.Flatten(System.Exception,System.String,System.Boolean)">
            <summary>
            Flattens the specified exception and inner exception data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="includeStackTrace">if set to <c>true</c> include stack trace.</param>
            <returns>The flatten message.</returns>
            <exception cref="T:System.ArgumentNullException">The <param ref="exception"> is <c>null</c>.</param></exception>
        </member>
        <member name="M:Catel.ExceptionExtensions.GetAllInnerExceptions(System.Exception)">
            <summary>
            Gets all inner exceptions.
            </summary>
            <param name="exception">The exception.</param>
            <returns>The inner exceptions collection.</returns>
            <exception cref="T:System.ArgumentNullException">The <param ref="exception"> is <c>null</c>.</param></exception>
        </member>
        <member name="M:Catel.ExceptionExtensions.Find``1(System.Exception)">
            <summary>
            Finds the specified exception in all inner exceptions.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="exception">The exception.</param>
            <returns>The found exception.</returns>
            <exception cref="T:System.ArgumentNullException">The <param ref="exception"> is <c>null</c>.</param></exception>
        </member>
        <member name="M:Catel.ExceptionExtensions.ToXml(System.Exception)">
            <summary>
            Returns the Exception message as XML document.
            </summary>
            <param name="exception">The exception.</param>
            <returns>An XDocument of the Exception object.</returns>
            <exception cref="T:System.ArgumentNullException">The <param ref="exception"> is <c>null</c>.</param></exception>
        </member>
        <member name="T:Catel.StringExtensions">
            <summary>
            The string extensions.
            </summary>
        </member>
        <member name="M:Catel.StringExtensions.EqualsIgnoreCase(System.String,System.String)">
            <summary>
            Executes a string comparison that is case insensitive.
            </summary>
            <param name="str">The string.</param>
            <param name="valueToCheck">The value to check.</param>
            <returns><c>true</c> if the strings are equal, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.StringExtensions.ContainsIgnoreCase(System.String,System.String)">
            <summary>
            Determines whether the specified string contains the value to check.
            </summary>
            <param name="str">The string.</param>
            <param name="valueToCheck">The value to check.</param>
            <returns><c>true</c> if the string contains the value to check, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.StringExtensions.StartsWithIgnoreCase(System.String,System.String)">
            <summary>
            Determines whether the string starts with the value to check.
            </summary>
            <param name="str">The string.</param>
            <param name="valueToCheck">The value to check.</param>
            <returns><c>true</c> if the string starts with the value to check, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.StringExtensions.EndsWithIgnoreCase(System.String,System.String)">
            <summary>
            Determines whether the string ends with the value to check.
            </summary>
            <param name="str">The string.</param>
            <param name="valueToCheck">The value to check.</param>
            <returns><c>true</c> if the string ends with the value to check, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.StringExtensions.IndexOfIgnoreCase(System.String,System.String)">
            <summary>
            Determines the index of the value to check inside the specified string.
            </summary>
            <param name="str">The string.</param>
            <param name="valueToCheck">The value to check.</param>
            <returns>The index or <c>-1</c> if not found.</returns>
        </member>
        <member name="M:Catel.StringExtensions.PrepareAsSearchFilter(System.String)">
            <summary>
            Prepares a string value as search filter by trimming it and making it lower-case.
            </summary>
            <param name="filter">The filter.</param>
            <returns>The search filter.</returns>
        </member>
        <member name="F:Catel.StringExtensions.SlugRegex">
            <summary>
            The slug regex.
            </summary>
        </member>
        <member name="F:Catel.StringExtensions.WhiteSpaceRegex">
            <summary>
            The white space regex.
            </summary>
        </member>
        <member name="M:Catel.StringExtensions.GetSlug(System.String,System.String,System.String)">
            <summary>
            Gets the slug of the specific input string.
            </summary>
            <param name="input">The input.</param>
            <param name="spaceReplacement">The space replacement.</param>
            <param name="dotReplacement">The dot replacement.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.ExceptionFactory">
            <summary>
            Exception factory.
            </summary>
        </member>
        <member name="M:Catel.ExceptionFactory.CreateException``1(System.String,System.Exception)">
            <summary>
            Creates the exception with the message and inner exception. If the exception does not support creation with
            inner exceptions, it will use the message only.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
            <returns>The created exception or <c>null</c> if there was no valid constructor available.</returns>
        </member>
        <member name="M:Catel.ExceptionFactory.CreateException(System.Type,System.String,System.Exception)">
            <summary>
            Creates the exception with the message and inner exception. If the exception does not support creation with
            inner exceptions, it will use the message only.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
            <returns>The created exception or <c>null</c> if there was no valid constructor available.</returns>
        </member>
        <member name="M:Catel.ExceptionFactory.CreateException``1(System.Object[])">
            <summary>
            Creates the exception with the specified arguments.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="args">The arguments.</param>
            <returns>The created exception or <c>null</c> if there was no valid constructor available.</returns>
        </member>
        <member name="M:Catel.ExceptionFactory.CreateException(System.Type,System.Object[])">
            <summary>
            Creates the exception with the specified arguments.
            </summary>
            <param name="exceptionType">Type of the exception.</param>
            <param name="args">The arguments.</param>
            <returns>The created exception or <c>null</c> if there was no valid constructor available.</returns>
        </member>
        <member name="T:Catel.CompositeFilter`1">
            <summary>
            Composite filter.
            </summary>
            <typeparam name="T">Type of the filter.</typeparam>
        </member>
        <member name="M:Catel.CompositeFilter`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.CompositeFilter`1"/> class.
            </summary>
        </member>
        <member name="P:Catel.CompositeFilter`1.Includes">
            <summary>
            Gets the includes.
            </summary>
            <value>The includes.</value>
        </member>
        <member name="P:Catel.CompositeFilter`1.Excludes">
            <summary>
            Gets or sets the excludes.
            </summary>
            <value>The excludes.</value>
        </member>
        <member name="M:Catel.CompositeFilter`1.Matches(`0)">
            <summary>
            Checks whether the target matches any of the <see cref="P:Catel.CompositeFilter`1.Includes"/> and does
            not match any of the <see cref="P:Catel.CompositeFilter`1.Excludes"/>.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the match is a successful hit, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.CompositeFilter`1.MatchesObject(System.Object)">
            <summary>
            Object implementation of the <see cref="M:Catel.CompositeFilter`1.Matches(`0)"/> method so it can be used for non-generic predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the match is a successful hit, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Catel.CompositePredicate`1">
            <summary>
            Composite predicate.
            </summary>
            <typeparam name="T">The predicates.</typeparam>
        </member>
        <member name="M:Catel.CompositePredicate`1.Add(System.Predicate{`0})">
            <summary>
            Adds the specified filter.
            </summary>
            <param name="filter">The filter.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="filter"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.CompositePredicate`1.MatchesAll(`0)">
            <summary>
            Checks whether the specified target matches all of the registered predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the target matches all of the filters, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.CompositePredicate`1.MatchesAny(`0)">
            <summary>
            Checks whether the specified target matches any of the registered predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the target matches any of the filters, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.CompositePredicate`1.MatchesNone(`0)">
            <summary>
            Checks whether the specified target matches none of the registered predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the target matches none of the filters, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.CompositePredicate`1.DoesNotMatchAny(`0)">
            <summary>
            Checks whether the specified target does not match any of the registered predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the target does not match any of the filters, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.CompositePredicate`1.op_Addition(Catel.CompositePredicate{`0},System.Predicate{`0})">
            <summary>
            +s the specified invokes.
            </summary>
            <param name="invokes">The invokes.</param>
            <param name="filter">The filter.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="invokes"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="filter"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.ICompositeFilter`1">
            <summary>
            Composite filter.
            </summary>
            <typeparam name="T">Type of the filter.</typeparam>
        </member>
        <member name="P:Catel.ICompositeFilter`1.Includes">
            <summary>
            Gets the includes.
            </summary>
            <value>The includes.</value>
        </member>
        <member name="P:Catel.ICompositeFilter`1.Excludes">
            <summary>
            Gets or sets the excludes.
            </summary>
            <value>The excludes.</value>
        </member>
        <member name="M:Catel.ICompositeFilter`1.Matches(`0)">
            <summary>
            Checks whether the target matches any of the <see cref="P:Catel.ICompositeFilter`1.Includes"/> and does
            not match any of the <see cref="P:Catel.ICompositeFilter`1.Excludes"/>.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the match is a successful hit, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.ICompositeFilter`1.MatchesObject(System.Object)">
            <summary>
            Object implementation of the <see cref="M:Catel.CompositeFilter`1.Matches(`0)"/> method so it can be used for non-generic predicates.
            </summary>
            <param name="target">The target.</param>
            <returns><c>true</c> if the match is a successful hit, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Catel.IFluent">
            <summary>
            Interface that is used to build fluent interfaces and hides methods declared by <see cref="T:System.Object" /> from IntelliSense.
            </summary>
            <nuget id="IFluentInterface" />
            <remarks>Code that consumes implementations of this interface should expect one of two things:
            <list type="number">
              <item>
                When referencing the interface from within the same solution (project reference), you will still see the methods this interface is meant to hide.
              </item>
              <item>
                When referencing the interface through the compiled output assembly (external reference), the standard Object methods will be hidden as intended.
              </item>
            </list>
            See http://bit.ly/ifluentinterface for more information.</remarks>
        </member>
        <member name="M:Catel.IFluent.GetType">
            <summary>
            Redeclaration that hides the <see cref="M:System.Object.GetType" /> method from IntelliSense.
            </summary>
            <returns>The <see cref="T:System.Type" />.</returns>
        </member>
        <member name="M:Catel.IFluent.GetHashCode">
            <summary>
            Redeclaration that hides the <see cref="M:System.Object.GetHashCode" /> method from IntelliSense.
            </summary>
            <returns>The <see cref="T:System.Int32" />.</returns>
        </member>
        <member name="M:Catel.IFluent.ToString">
            <summary>
            Redeclaration that hides the <see cref="M:System.Object.ToString" /> method from IntelliSense.
            </summary>
            <returns>The <see cref="T:System.String" />.</returns>
        </member>
        <member name="M:Catel.IFluent.Equals(System.Object)">
            <summary>
            Redeclaration that hides the <see cref="M:System.Object.Equals(System.Object)" /> method from IntelliSense.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
            <returns><c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.EnvironmentHelper">
            <summary>
            Helper class for environment information.
            </summary>
        </member>
        <member name="P:Catel.EnvironmentHelper.IsProcessHostedByVisualStudio">
            <summary>
            Determines whether the process is hosted by visual studio.
            </summary>
            <returns><c>true</c> if the process is hosted by visual studio; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:Catel.EnvironmentHelper.IsProcessHostedBySharpDevelop">
            <summary>
            Determines whether the process is hosted by sharp develop.
            </summary>
            <returns><c>true</c> if the process is hosted by sharp develop; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:Catel.EnvironmentHelper.IsProcessHostedByExpressionBlend">
            <summary>
            Determines whether the process is hosted by expression blend.
            </summary>
            <returns><c>true</c> if the process is hosted by expression blend; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:Catel.EnvironmentHelper.IsProcessHostedByTool">
            <summary>
            Determines whether the process is hosted by any tool, such as visual studio or blend.
            </summary>
            <returns><c>true</c> if the process is hosted by any tool, such as visual studio or blend; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EnvironmentHelper.IsProcessCurrentlyHostedByVisualStudio(System.Boolean)">
            <summary>
            Determines whether the process is hosted by visual studio.
            <para />
            This methods executes the logic every time it is called. To get a cached value, use the
            <see cref="P:Catel.EnvironmentHelper.IsProcessHostedByVisualStudio" /> instead.
            </summary>
            <param name="checkParentProcesses">if set to <c>true</c>, the parent processes will also be checked.</param>
            <returns><c>true</c> if the process is hosted by visual studio; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EnvironmentHelper.IsProcessCurrentlyHostedBySharpDevelop(System.Boolean)">
            <summary>
            Determines whether the process is hosted by sharp develop.
            <para />
            This methods executes the logic every time it is called. To get a cached value, use the
            <see cref="P:Catel.EnvironmentHelper.IsProcessHostedByExpressionBlend" /> instead.
            </summary>
            <param name="checkParentProcesses">if set to <c>true</c>, the parent processes will also be checked.</param>
            <returns><c>true</c> if the process is hosted by sharp develop; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EnvironmentHelper.IsProcessCurrentlyHostedByExpressionBlend(System.Boolean)">
            <summary>
            Determines whether the process is hosted by expression blend.
            <para />
            This methods executes the logic every time it is called. To get a cached value, use the
            <see cref="P:Catel.EnvironmentHelper.IsProcessHostedByExpressionBlend" /> instead.
            </summary>
            <param name="checkParentProcesses">if set to <c>true</c>, the parent processes will also be checked.</param>
            <returns><c>true</c> if the process is hosted by expression blend; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.EnvironmentHelper.IsProcessCurrentlyHostedByTool(System.Boolean)">
            <summary>
            Determines whether the process is hosted by any tool, such as visual studio or blend.
            <para />
            This methods executes the logic every time it is called. To get a cached value, use the
            <see cref="P:Catel.EnvironmentHelper.IsProcessHostedByTool" /> instead.
            </summary>
            <param name="checkParentProcesses">if set to <c>true</c>, the parent processes will also be checked.</param>
            <returns><c>true</c> if the current process is hosted by any tool; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.ExpressionHelper">
            <summary>
            Expression helper class that allows easy parsing of expressions.
            </summary>
        </member>
        <member name="F:Catel.ExpressionHelper.Log">
            <summary>
            The <see cref="T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="M:Catel.ExpressionHelper.GetPropertyName``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            Gets the name of the property from the expression.
            </summary>
            <typeparam name="TProperty">The type of the property.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <returns>
            The name of the property parsed from the expression or <c>null</c> if the property cannot be found.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ExpressionHelper.GetOwner``1(System.Linq.Expressions.Expression{System.Func{``0}})">
            <summary>
            Gets the owner of the expression. For example if the expression <c>() => MyProperty</c>, the owner of the
            property will be returned.
            </summary>
            <param name="propertyExpression">The property expression.</param>
            <returns>The owner of the expression or <c>null</c> if the owner cannot be found.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.HashHelper">
            <summary>
            Hash helper class to generate hashCodes for objects.
            </summary>
        </member>
        <member name="M:Catel.HashHelper.CombineHash(System.Int32[])">
            <summary>
            Combine multiple hashcodes in to one.
            </summary>
            <param name="hashCodes">An array of hashcodes.</param>
            <returns>An 'unique' hashcode.</returns>
            <remarks>Based on System.Web.UI.HashCodeCombiner (use Reflector).</remarks>
        </member>
        <member name="T:Catel.LanguageHelper">
            <summary>
            Static wrapper around the service locator to easily retrieve language values.
            </summary>
        </member>
        <member name="M:Catel.LanguageHelper.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.LanguageHelper"/> class.
            </summary>
        </member>
        <member name="M:Catel.LanguageHelper.GetString(System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string value using the specified culture.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <param name="culture">The culture.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.ObjectHelper">
            <summary>
            Object helper class.
            </summary>
        </member>
        <member name="M:Catel.ObjectHelper.AreEqual(System.Object,System.Object)">
            <summary>
              Checks whether the 2 specified objects are equal. This method is better, simple because it also checks boxing so
              2 integers with the same values that are boxed are equal.
            </summary>
            <param name = "object1">The first object.</param>
            <param name = "object2">The second object.</param>
            <returns><c>true</c> if the objects are equal; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ObjectHelper.AreEqualReferences(System.Object,System.Object)">
            <summary>
              Checks whether the 2 specified objects are equal references. This method is better, simple because it also checks boxing so
              2 integers with the same values that are boxed are equal.
            <para />
              Two objects are considered equal if one of the following expressions returns true:
            <list type="bullet">
              <item><description>Both values are <c>null</c>.</description></item>
              <item><description>Both values have the same reference, checked by <see cref="M:System.Object.ReferenceEquals(System.Object,System.Object)"/>.</description></item>
              <item><description>Both values are value types and have the same value.</description></item>
              <item><description>Both values are string type and have the same value.</description></item>
            </list>
            </summary>
            <param name = "object1">The first object.</param>
            <param name = "object2">The second object.</param>
            <returns><c>true</c> if the objects are equal references; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.ObjectHelper.IsNull(System.Object)">
            <summary>
            Determines whether the specified object is <c>null</c> or <c>DBNull.Value</c>.
            </summary>
            <param name="obj">The object to chec..</param>
            <returns>
              <c>true</c> if the specified object is <c>null</c> or <c>DBNull.Value</c>; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="T:Catel.ObjectToStringHelper">
            <summary>
            Simple static class that turns an object to string.
            </summary>
        </member>
        <member name="M:Catel.ObjectToStringHelper.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.StringToObjectHelper"/> class.
            </summary>
        </member>
        <member name="P:Catel.ObjectToStringHelper.DefaultCulture">
            <summary>
            Gets or sets the default culture to use for parsing.
            </summary>
            <value>The default culture.</value>
        </member>
        <member name="M:Catel.ObjectToStringHelper.ToString(System.Object)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the instance.
            <para />
            If the <paramref name="instance"/> is <c>null</c>, this method will return "null". This
            method is great when the value of a property must be logged.
            </summary>
            <param name="instance">The instance, can be <c>null</c>.</param>
            <returns>A <see cref="T:System.String"/> that represents the instance.</returns>
        </member>
        <member name="M:Catel.ObjectToStringHelper.ToString(System.Object,System.Globalization.CultureInfo)">
            <summary>
            Returns a <see cref="T:System.String" /> that represents the instance.
            <para />
            If the <paramref name="instance" /> is <c>null</c>, this method will return "null". This
            method is great when the value of a property must be logged.
            </summary>
            <param name="instance">The instance, can be <c>null</c>.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>A <see cref="T:System.String" /> that represents the instance.</returns>
        </member>
        <member name="M:Catel.ObjectToStringHelper.ToTypeString(System.Object)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the type name of the instance.
            <para />
            If the <paramref name="instance"/> is <c>null</c>, this method will return "null". This
            method is great when the value of a property must be logged.
            </summary>
            <param name="instance">The instance.</param>
            <returns>A <see cref="T:System.String"/> that represents the type of the instance.</returns>
        </member>
        <member name="M:Catel.ObjectToStringHelper.ToFullTypeString(System.Object)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the full type name of the instance.
            <para />
            If the <paramref name="instance"/> is <c>null</c>, this method will return "null". This
            method is great when the value of a property must be logged.
            </summary>
            <param name="instance">The instance.</param>
            <returns>A <see cref="T:System.String"/> that represents the type of the instance.</returns>
        </member>
        <member name="T:Catel.ParallelHelper">
            <summary>
            Helper class to execute groups of methods in parallel.
            </summary>
        </member>
        <member name="F:Catel.ParallelHelper.Log">
            <summary>
            The log
            </summary>
        </member>
        <member name="M:Catel.ParallelHelper.ExecuteInParallel``1(System.Collections.Generic.List{``0},System.Action{``0},System.Int32,System.String)">
            <summary>
            Executes all the items in the collection in parallel batches.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="items">The items.</param>
            <param name="actionToInvoke">The action to invoke per item.</param>
            <param name="itemsPerBatch">The items per batch.</param>
            <param name="taskName">Name of the task, can be <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="items" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actionToInvoke" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.ParallelHelper.ExecuteBatch``1(System.String,System.String,System.Collections.Generic.List{``0},System.Action{``0})">
            <summary>
            Executes the batch for the specific set of items.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="taskName">Name of the task.</param>
            <param name="batchName">Name of the type group.</param>
            <param name="items">The items.</param>
            <param name="actionToInvoke">The action to invoke.</param>
        </member>
        <member name="T:Catel.ResourceHelper">
            <summary>
            Resource helper class to read resource files.
            </summary>
        </member>
        <member name="M:Catel.ResourceHelper.GetString(System.Type,System.String,System.String)">
            <summary>
            Gets the string from the specified resource file.
            </summary>
            <param name="callingType">Type of the calling.</param>
            <param name="resourceFile">The resource file.</param>
            <param name="resourceName">Name of the resource.</param>
            <returns></returns>
            <remarks></remarks>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceFile"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.ResourceHelper.GetString(System.String)">
            <summary>
            Gets the string from the specified resource file.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <returns>System.String.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.StringToObjectHelper">
            <summary>
            String to object helper class that converts a string to the right object if possible.
            </summary>
        </member>
        <member name="M:Catel.StringToObjectHelper.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.StringToObjectHelper"/> class.
            </summary>
        </member>
        <member name="P:Catel.StringToObjectHelper.DefaultCulture">
            <summary>
            Gets or sets the default culture to use for parsing.
            </summary>
            <value>The default culture.</value>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToBool(System.String)">
            <summary>
            Converts a string to a boolean.
            </summary>
            <param name="value">The value.</param>
            <returns>The boolean value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToByteArray(System.String)">
            <summary>
            Converts a string to a byte array.
            </summary>
            <param name="value">The value.</param>
            <returns>The byte array value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDateTime(System.String)">
            <summary>
            Converts a string to a date/time.
            </summary>
            <param name="value">The value.</param>
            <returns>The date/time value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDateTime(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a date/time.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The date/time value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToTimeSpan(System.String)">
            <summary>
            Converts a string to a timespan.
            </summary>
            <param name="value">The value.</param>
            <returns>The timespan value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToTimeSpan(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a timespan.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The timespan value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDecimal(System.String)">
            <summary>
            Converts a string to a decimal.
            </summary>
            <param name="value">The value.</param>
            <returns>The decimal value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDecimal(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a decimal.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The decimal value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDouble(System.String)">
            <summary>
            Converts a string to a double.
            </summary>
            <param name="value">The value.</param>
            <returns>The double value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToDouble(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a double.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The double value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToFloat(System.String)">
            <summary>
            Converts a string to a float.
            </summary>
            <param name="value">The value.</param>
            <returns>The float value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToFloat(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a float.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The float value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToGuid(System.String)">
            <summary>
            Converts a string to a guid.
            </summary>
            <param name="value">The value.</param>
            <returns>The guid value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToInt(System.String)">
            <summary>
            Converts a string to an integer.
            </summary>
            <param name="value">The value.</param>
            <returns>The integer value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToInt(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to an integer.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The integer value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToLong(System.String)">
            <summary>
            Converts a string to a long.
            </summary>
            <param name="value">The value.</param>
            <returns>The long value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToLong(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to a long.
            </summary>
            <param name="value">The value.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The long value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToType(System.String)">
            <summary>
            Converts a string to a Type.
            </summary>
            <param name="value">The value.</param>
            <returns>The Type value of the string.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToString(System.String)">
            <summary>
            Converts a string to a string.
            </summary>
            <param name="value">The value.</param>
            <returns>The string value of the string.</returns>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToRightType(System.Type,System.String)">
            <summary>
            Converts a string to the right target type, such as <see cref="T:System.String"/>, <see cref="T:System.Boolean"/> and <see cref="T:System.DateTime"/>.
            </summary>
            <param name="targetType">The target type to convert to.</param>
            <param name="value">The value to convert to the specified target type.</param>
            <returns>The converted value. If the <paramref name="value"/> is <c>null</c>, this method will return <c>null</c>.</returns>
            <exception cref="T:System.NotSupportedException">The specified <paramref name="targetType"/> is not supported.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToRightType(System.Type,System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts a string to the right target type, such as <see cref="T:System.String" />, <see cref="T:System.Boolean" /> and <see cref="T:System.DateTime" />.
            </summary>
            <param name="targetType">The target type to convert to.</param>
            <param name="value">The value to convert to the specified target type.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The converted value. If the <paramref name="value" /> is <c>null</c>, this method will return <c>null</c>.</returns>
            <exception cref="T:System.NotSupportedException"></exception>
            <exception cref="T:System.NotSupportedException">The specified <paramref name="targetType" /> is not supported.</exception>
        </member>
        <member name="M:Catel.StringToObjectHelper.ToEnum``1(System.String,``0)">
            <summary>
            Converts a string to an enum value. If the value cannot be converted for any reason, the <paramref name="defaultValue"/>
            will be returned.
            </summary>
            <typeparam name="TEnumValue">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="defaultValue">The default value.</param>
            <returns>The enum value representing the string.</returns>
        </member>
        <member name="M:Catel.StringToObjectHelper.CleanString(System.String)">
            <summary>
            Cleans up the string, for example by removing the braces.
            </summary>
            <param name="value">The value.</param>
            <returns>The cleaned up string.</returns>
        </member>
        <member name="T:Catel.TagHelper">
            <summary>
            Helper class for comparing tags.
            </summary>
        </member>
        <member name="M:Catel.TagHelper.AreTagsEqual(System.Object,System.Object)">
            <summary>
            Compares the <paramref name="firstTag"/> with the <paramref name="secondTag"/>.
            <para/>
            This method is introduced because a string comparison fails when using ==.
            </summary>
            <param name="firstTag">The first tag.</param>
            <param name="secondTag">The second tag.</param>
            <returns>
            	<c>true</c> if the tags are equal; otherwise <c>false</c>.
            </returns>
            <remarks>
            When both tags are <c>null</c>, the tags are considered equal.
            </remarks>
        </member>
        <member name="M:Catel.TagHelper.ToString(System.Object)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the tag. This method also handles <c>null</c>, in that
            case it will return "null".
            </summary>
            <param name="tag">The tag.</param>
            <returns>A <see cref="T:System.String"/> that represents this instance.</returns>
        </member>
        <member name="T:Catel.UniqueIdentifierHelper">
            <summary>
            Helper class that allows to generic unique identifiers for objects.
            <para />
            This class internally keeps a counter per type and will increase the counter every time
            a new unique identifier is requested.
            </summary>
        </member>
        <member name="F:Catel.UniqueIdentifierHelper._uniqueIdentifiers">
            <summary>
            The dictionary containing the unique identifiers per type.
            </summary>
        </member>
        <member name="M:Catel.UniqueIdentifierHelper.GetUniqueIdentifier``1">
            <summary>
            Gets the unique identifier for the specified type.
            </summary>
            <typeparam name="T">The type to retrieve the unique identifier for.</typeparam>
            <returns>A new unique identifier for the type.</returns>
        </member>
        <member name="M:Catel.UniqueIdentifierHelper.GetUniqueIdentifier(System.Type)">
            <summary>
            Gets a unique identifier for the specified type.
            </summary>
            <param name="type">The type to retrieve the unique identifier for.</param>
            <returns>A new unique identifier for the type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.UrlHelper">
            <summary>
            Url helper class.
            </summary>
        </member>
        <member name="M:Catel.UrlHelper.GetSafeUriString(System.Uri)">
            <summary>
            Gets the safe URI string.
            </summary>
            <param name="uri">The URI.</param>
            <returns>The safe URI string.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="uri" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.UrlHelper.IsAbsoluteUrl(System.String)">
            <summary>
            Determines whether the specified url is an absolute url or not.
            </summary>
            <param name="url">The URL.</param>
            <returns><c>true</c> if the specified url is an absolute url; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="url"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IDisposableToken`1">
            <summary>
            A reusable disposable token that accepts initialization and uninitialization code.
            </summary>
        </member>
        <member name="P:Catel.IDisposableToken`1.Instance">
            <summary>
            Gets the instance.
            </summary>
            <value>The instance.</value>
        </member>
        <member name="P:Catel.IDisposableToken`1.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.IUniqueIdentifyable">
            <summary>
            Interface to specify that an object is uniquely identifyable.
            </summary>
        </member>
        <member name="P:Catel.IUniqueIdentifyable.UniqueIdentifier">
            <summary>
            Gets the unique identifier.
            </summary>
            <value>The unique identifier.</value>
        </member>
        <member name="T:Catel.IoC.InjectAttribute">
            <summary>
            Attribute to specify that a specific property must be injected.
            </summary>
        </member>
        <member name="M:Catel.IoC.InjectAttribute.#ctor(System.Type,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.InjectAttribute"/> class.
            </summary>
        </member>
        <member name="P:Catel.IoC.InjectAttribute.Type">
            <summary>
            Gets or sets the type.
            <para />
            If <c>null</c>, the type must be determined dynamically.
            </summary>
            <value>The type.</value>
            <remarks>
            This property is settable so it can be filled when the type is <c>null</c>.
            </remarks>
        </member>
        <member name="P:Catel.IoC.InjectAttribute.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.IoC.InjectionConstructorAttribute">
            <summary>
            Attribute to specify the constructor to use for dependency injection.
            </summary>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorRegistrationMode">
            <summary>
            Available modes for the <see cref="T:Catel.IoC.ServiceLocatorRegistrationAttribute" />.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorRegistrationMode.Transient">
            <summary>
            The type will be registered as transient.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorRegistrationMode.SingletonInstantiateImmediately">
            <summary>
            The singleton instance will be created immediately and then registered.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorRegistrationMode.SingletonInstantiateWhenRequired">
            <summary>
            The singleton instance will be created when it is first queried.
            </summary>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorRegistrationAttribute">
            <summary>
            The register attribute.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorRegistrationAttribute.#ctor(System.Type,Catel.IoC.ServiceLocatorRegistrationMode,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ServiceLocatorRegistrationAttribute"/> class.
            </summary>
            <param name="interfaceType">Type of the interface.</param>
            <param name="registrationMode">The registration mode.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="interfaceType" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistrationAttribute.InterfaceType">
            <summary>
            Gets the type.
            </summary>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistrationAttribute.RegistrationType">
            <summary>
            Gets the registration type.
            </summary>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistrationAttribute.RegistrationMode">
            <summary>
            Gets the registration model.
            </summary>
            <value>The registration model.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistrationAttribute.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.IoC.CatelDependencyResolver">
            <summary>
            Implementation of the <see cref="T:Catel.IoC.IDependencyResolver"/> interface for Catel by wrapping the
            <see cref="T:Catel.IoC.ServiceLocator"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.CatelDependencyResolver.#ctor(Catel.IoC.IServiceLocator)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.CatelDependencyResolver" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.CatelDependencyResolver.CanResolve(System.Type,System.Object)">
            <summary>
            Determines whether the specified type with the specified tag can be resolved.
            </summary>
            <param name="type">The type.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified type with the specified tag can be resolved; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.CatelDependencyResolver.CanResolveAll(System.Type[])">
            <summary>
            Determines whether all types specified can be resolved. Though <see cref="M:Catel.IoC.CatelDependencyResolver.ResolveAll(System.Type[],System.Object)"/> will return <c>null</c>
            at the array index when a type cannot be resolved, this method will actually check whether all the specified types
            are registered.
            <para />
            It is still possible to call <see cref="M:Catel.IoC.CatelDependencyResolver.ResolveAll(System.Type[],System.Object)"/>, even when this method returns <c>false</c>.
            </summary>
            <param name="types">The types.</param>
            <returns><c>true</c> if all types specified can be resolved; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.CatelDependencyResolver.Resolve(System.Type,System.Object)">
            <summary>
            Resolves the specified type with the specified tag.
            </summary>
            <param name="type">The type.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.TypeNotRegisteredException">The type is not found in any container.</exception>
            <returns>The resolved object.</returns>
        </member>
        <member name="M:Catel.IoC.CatelDependencyResolver.ResolveAll(System.Type[],System.Object)">
            <summary>
            Resolves the specified types with the specified tag.
            </summary>
            <param name="types">The types.</param>
            <param name="tag">The tag.</param>
            <returns>A list of resolved types. If one of the types cannot be resolved, that location in the array will be <c>null</c>.</returns>
        </member>
        <member name="T:Catel.IoC.FirstInterfaceRegistrationConvention">
            <summary>
            The first interface convention based on <see cref="T:Catel.IoC.RegistrationConventionBase"/>.
            </summary>
        </member>
        <member name="F:Catel.IoC.FirstInterfaceRegistrationConvention.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.IoC.FirstInterfaceRegistrationConvention.#ctor(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.FirstInterfaceRegistrationConvention"/> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:Catel.IoC.FirstInterfaceRegistrationConvention.Process(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Processes the specified types to register.
            </summary>
            <param name="typesToRegister">The types to register.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typesToRegister" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.NamingRegistrationConvention">
            <summary>
            The naming convention based on <see cref="T:Catel.IoC.RegistrationConventionBase"/>.
            </summary>
        </member>
        <member name="F:Catel.IoC.NamingRegistrationConvention.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.IoC.NamingRegistrationConvention.#ctor(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.NamingRegistrationConvention" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:Catel.IoC.NamingRegistrationConvention.Process(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Processes the specified types to register.
            </summary>
            <param name="typesToRegister">The types to register.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typesToRegister" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.RegistrationConventionBase">
            <summary>
            The <see cref="T:Catel.IoC.IRegistrationConvention"/> base implementation.
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionBase.#ctor(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.RegistrationConventionBase" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionBase.Container">
            <summary>
            Gets the container.
            </summary>
            <value>The container.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionBase.RegistrationType">
            <summary>
            Gets or sets the type of the registration.
            </summary>
            <value>The type of the registration.</value>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionBase.Process(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Processes the specified types to register.
            </summary>
            <param name="typesToRegister">The types to register.</param>
        </member>
        <member name="T:Catel.IoC.DependencyResolverManager">
            <summary>
            The dependency resolver manager.
            </summary>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.IoC.DependencyResolverManager"/> class.
            </summary>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.DependencyResolverManager"/> class.
            </summary>
        </member>
        <member name="P:Catel.IoC.DependencyResolverManager.Default">
            <summary>
            Gets or the default instance.
            </summary>
            <value>The default instance.</value>
        </member>
        <member name="P:Catel.IoC.DependencyResolverManager.DefaultDependencyResolver">
            <summary>
            Gets or sets the default dependency resolver.
            </summary>
            <value>The default dependency resolver.</value>
            <exception cref="T:System.ArgumentNullException">The <paramref name="value"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.RegisterDependencyResolverForInstance(System.Object,Catel.IoC.IDependencyResolver)">
            <summary>
            Registers the dependency resolver for a specific instance.
            </summary>
            <param name="instance">The instance.</param>
            <param name="dependencyResolver">The dependency resolver.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.GetDependencyResolverForInstance(System.Object)">
            <summary>
            Gets the dependency resolver for a specific instance. If there is no dependency resolver registered for
            the specific instance, this method will use the <see cref="M:Catel.IoC.DependencyResolverManager.GetDependencyResolverForType(System.Type)" />.
            </summary>
            <param name="instance">The instance to retrieve the dependency resolver for.</param>
            <returns>The <see cref="T:Catel.IoC.IDependencyResolver" /> for the object.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.RegisterDependencyResolverForType(System.Type,Catel.IoC.IDependencyResolver)">
            <summary>
            Registers the dependency resolver for a specific type.
            </summary>
            <param name="type">The type.</param>
            <param name="dependencyResolver">The dependency resolver.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverManager.GetDependencyResolverForType(System.Type)">
            <summary>
            Gets the dependency resolver for a specific type. If there is no dependency resolver registered for
            the specific type, this method will returns the <see cref="P:Catel.IoC.DependencyResolverManager.DefaultDependencyResolver" />.
            </summary>
            <param name="type">The type.</param>
            <returns>The <see cref="T:Catel.IoC.IDependencyResolver" /> for the type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.MissingTypeEventArgs">
            <summary>
            Event arguments for the <see cref="E:Catel.IoC.IServiceLocator.MissingType"/> event.
            <para>
            </para>
            These event arguments will be fired. To resolve a type, set either the <see cref="P:Catel.IoC.MissingTypeEventArgs.ImplementingInstance"/>
            or <see cref="P:Catel.IoC.MissingTypeEventArgs.ImplementingType"/>. If both are filled, the instance will be used.
            </summary>
        </member>
        <member name="M:Catel.IoC.MissingTypeEventArgs.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.MissingTypeEventArgs"/> class. 
            </summary>
            <param name="interfaceType">
            Type of the interface.
            </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="interfaceType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.MissingTypeEventArgs.InterfaceType">
            <summary>
            Gets the type of the interface that is currently unresolved.
            </summary>
            <value>The type of the interface.</value>
        </member>
        <member name="P:Catel.IoC.MissingTypeEventArgs.ImplementingInstance">
            <summary>
            Gets or sets the implementing instance.
            <para />
            Set if the registration of an instance is required.
            </summary>
            <value>The implementing instance.</value>
        </member>
        <member name="P:Catel.IoC.MissingTypeEventArgs.ImplementingType">
            <summary>
            Gets or sets the implementing type.
            <para />
            Set if the registration of a type is required.
            </summary>
            <value>The implementing type.</value>
        </member>
        <member name="P:Catel.IoC.MissingTypeEventArgs.Tag">
            <summary>
            Gets or sets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.IoC.MissingTypeEventArgs.RegistrationType">
            <summary>
            Gets or sets the life style of the type that will be registered. 
            </summary>
            <remarks>
            If the <see cref="P:Catel.IoC.MissingTypeEventArgs.ImplementingInstance"/> is set then this value will be ignored.
            </remarks>
        </member>
        <member name="T:Catel.IoC.TypeInstantiatedEventArgs">
            <summary>
            EventArgs for the <see cref="E:Catel.IoC.IServiceLocator.TypeInstantiated"/> event.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeInstantiatedEventArgs.#ctor(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeInstantiatedEventArgs" /> class.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="serviceImplementationType">Type of the service implementation.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceImplementationType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.TypeInstantiatedEventArgs.ServiceType">
            <summary>
            Gets the type of the service.
            </summary>
            <value>The type of the service.</value>
        </member>
        <member name="P:Catel.IoC.TypeInstantiatedEventArgs.ServiceImplementationType">
            <summary>
            Gets the type of the actual implementation.
            </summary>
            <value>The type of the actual implementation.</value>
        </member>
        <member name="P:Catel.IoC.TypeInstantiatedEventArgs.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.IoC.TypeInstantiatedEventArgs.RegistrationType">
            <summary>
            Gets the type of the registration.
            </summary>
            <value>The type of the registration.</value>
        </member>
        <member name="T:Catel.IoC.TypeRegisteredEventArgs">
            <summary>
            EventArgs for the <see cref="E:Catel.IoC.IServiceLocator.TypeRegistered"/> event.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeRegisteredEventArgs.#ctor(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeRegisteredEventArgs" /> class.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="serviceImplementationType">Type of the service implementation.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceImplementationType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.TypeRegisteredEventArgs.ServiceType">
            <summary>
            Gets the type of the service.
            </summary>
            <value>The type of the service.</value>
        </member>
        <member name="P:Catel.IoC.TypeRegisteredEventArgs.ServiceImplementationType">
            <summary>
            Gets the type of the actual implementation.
            </summary>
            <value>The type of the actual implementation.</value>
        </member>
        <member name="P:Catel.IoC.TypeRegisteredEventArgs.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.IoC.TypeRegisteredEventArgs.RegistrationType">
            <summary>
            Gets the type of the registration.
            </summary>
            <value>The type of the registration.</value>
        </member>
        <member name="T:Catel.IoC.CircularDependencyException">
            <summary>
            Exception which can be used to easily detect circular dependencies inside the <see cref="T:Catel.IoC.ServiceLocator"/>.
            <para />
            This exception is used instead of letting the .NET framework throw a <c>StackOverflowException</c> which
            is much harder to debug.
            </summary>
        </member>
        <member name="M:Catel.IoC.CircularDependencyException.#ctor(Catel.IoC.ITypeRequestPath,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.CircularDependencyException" /> class.
            </summary>
            <param name="typePath">The type path.</param>
            <param name="message">The message.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typePath"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.CircularDependencyException.TypePath">
            <summary>
            Gets the type path.
            </summary>
            <value>The type path.</value>
        </member>
        <member name="T:Catel.IoC.ExternalContainerNotSupportedException">
            <summary>
            Exception class in case an external container is not supported by the <see cref="T:Catel.IoC.IServiceLocator"/> implementation.
            </summary>
        </member>
        <member name="M:Catel.IoC.ExternalContainerNotSupportedException.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ExternalContainerNotSupportedException"/> class.
            </summary>
            <param name="supportedContainers">The supported containers.</param>
        </member>
        <member name="P:Catel.IoC.ExternalContainerNotSupportedException.SupportedContainers">
            <summary>
            Gets the names of the supported containers.
            </summary>
            <value>The supported containers.</value>
        </member>
        <member name="M:Catel.IoC.ExternalContainerNotSupportedException.FormatMessage(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Formats the error message.
            </summary>
            <param name="supportedContainers">The supported containers.</param>
            <returns>The formatted error message.</returns>
        </member>
        <member name="T:Catel.IoC.TypeNotRegisteredException">
            <summary>
            Exception class in case an requested type from <see cref="T:Catel.IoC.IServiceLocator"/> is not registered.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeNotRegisteredException.#ctor(System.Type,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeNotRegisteredException" /> class.
            </summary>
            <param name="requestedType">The requested type.</param>
            <param name="message">The message.</param>
        </member>
        <member name="P:Catel.IoC.TypeNotRegisteredException.RequestedType">
            <summary>
            Gets the requested type.
            </summary>
            <value>The type.</value>
        </member>
        <member name="T:Catel.IoC.DependencyResolverExtensions">
            <summary>
            Extensions for the <see cref="T:Catel.IoC.IDependencyResolver"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.DependencyResolverExtensions.CanResolve``1(Catel.IoC.IDependencyResolver,System.Object)">
            <summary>
            Determines whether the specified type with the specified tag can be resolved.
            </summary>
            <typeparam name="T">The type to resolve.</typeparam>
            <param name="dependencyResolver">The dependency resolver.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverExtensions.Resolve``1(Catel.IoC.IDependencyResolver,System.Object)">
            <summary>
            Resolves the specified type with the specified tag.
            </summary>
            <typeparam name="T">Tye type to resolve.</typeparam>
            <param name="dependencyResolver">The dependency resolver.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved object.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverExtensions.TryResolve(Catel.IoC.IDependencyResolver,System.Type,System.Object)">
            <summary>
            Try to resolve the specified type with the specified tag.
            </summary>
            <param name="dependencyResolver">The dependency resolver.</param>
            <param name="serviceType">Type of the service.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved object or <c>null</c> if the type could not be resolved.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.DependencyResolverExtensions.TryResolve``1(Catel.IoC.IDependencyResolver,System.Object)">
            <summary>
            Try to resolve the specified type with the specified tag.
            </summary>
            <typeparam name="T">The type to resolve.</typeparam>
            <param name="dependencyResolver">The dependency resolver.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved object or <c>null</c> if the type could not be resolved.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.ObjectExtensions">
            <summary>
            IoC extensions for all objects.
            </summary>
        </member>
        <member name="M:Catel.IoC.ObjectExtensions.GetServiceLocator(System.Object)">
            <summary>
            Gets the <see cref="T:Catel.IoC.IServiceLocator"/> that was used to create the specified object.
            <para />
            This is a convenience call that internally does this:
            <para />
            <code>
            <![CDATA[
            var serviceLocator = DependencyResolverManager.Default;
            var dependencyResolver = dependencyResolverManager.GetDependencyResolverForInstance(obj);
            var serviceLocator = dependencyResolver.Resolve<IServiceLocator>();
            ]]>
            </code>
            </summary>
            <param name="obj">The object.</param>
            <returns>The <see cref="T:Catel.IoC.IServiceLocator"/> used to create this object.</returns>
        </member>
        <member name="M:Catel.IoC.ObjectExtensions.GetTypeFactory(System.Object)">
            <summary>
            Gets the <see cref="T:Catel.IoC.ITypeFactory"/> that was used to create the specified object.
            <para />
            This is a convenience call that internally does this:
            <para />
            <code>
            <![CDATA[
            var dependencyResolverManager = DependencyResolverManager.Default;
            var dependencyResolver = dependencyResolverManager.GetDependencyResolverForInstance(obj);
            var typeFactory = dependencyResolver.Resolve<ITypeFactory>();
            ]]>
            </code>
            </summary>
            <param name="obj">The object.</param>
            <returns>The <see cref="T:Catel.IoC.ITypeFactory"/> used to create this object.</returns>
        </member>
        <member name="M:Catel.IoC.ObjectExtensions.GetDependencyResolver(System.Object)">
            <summary>
            Gets the <see cref="T:Catel.IoC.IDependencyResolver"/> that was used to create the specified object.
            <para />
            This is a convenience call that internally does this:
            <para />
            <code>
            <![CDATA[
            var dependencyResolverManager = DependencyResolverManager.Default;
            var dependencyResolver = dependencyResolverManager.GetDependencyResolverForInstance(obj);
            ]]>
            </code>
            </summary>
            <param name="obj">The object.</param>
            <returns>The <see cref="T:Catel.IoC.IDependencyResolver"/> for this object.</returns>
        </member>
        <member name="T:Catel.IoC.RegistrationConventionHandlerExtensions">
            <summary>
            Extensions of <see cref="T:Catel.IoC.IRegistrationConventionHandler"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeTypesWhere(Catel.IoC.IRegistrationConventionHandler,System.Predicate{System.Type})">
            <summary>
            Only exclude types that match the specified predicate when scanning.
            </summary>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="exclude">The exclude.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exclude" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeAssembliesWhere(Catel.IoC.IRegistrationConventionHandler,System.Predicate{System.Reflection.Assembly})">
            <summary>
            Only exclude assemblies that match the specified predicate when scanning.
            </summary>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="exclude">The exclude.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exclude" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeAllTypesOfNamespace(Catel.IoC.IRegistrationConventionHandler,System.String)">
            <summary>
            Excludes the namespace.
            </summary>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="namespace">The namespace.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="namespace"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeAllTypesOfNamespaceContaining``1(Catel.IoC.IRegistrationConventionHandler)">
            <summary>
            Excludes the namespace containing.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ShouldAlsoUseConvention``1(Catel.IoC.IRegistrationConventionHandler,Catel.IoC.RegistrationType)">
            <summary>
            Registers the convention.
            </summary>
            <typeparam name="TRegistrationConvention">The type of the registration convention.</typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeType``1(Catel.IoC.IRegistrationConventionHandler)">
            <summary>
            Excludes the type.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.IncludeType``1(Catel.IoC.IRegistrationConventionHandler)">
            <typeparam name="T"></typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.ExcludeAssembly``1(Catel.IoC.IRegistrationConventionHandler)">
            <summary>
            Excludes the assembly.
            </summary>
            <typeparam name="TAssembly">The type of the assembly.</typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.IncludeTypesWhere(Catel.IoC.IRegistrationConventionHandler,System.Predicate{System.Type})">
            <summary>
            Only include types that match the specified predicate when scanning.
            </summary>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="include">The predicate to use for matching.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.AddAssemblyToScan``1(Catel.IoC.IRegistrationConventionHandler)">
            <summary>
            Adds the assembly to scan.
            </summary>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.IncludeAllTypesOfNamespaceContaining``1(Catel.IoC.IRegistrationConventionHandler)">
            <summary>
            Only include types in the same namespace as the specified type or its sub namespaces
            when scanning.
            </summary>
            <typeparam name="T">A type in the namespace to include.</typeparam>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandlerExtensions.IncludeAllTypesOfNamespace(Catel.IoC.IRegistrationConventionHandler,System.String)">
            <summary>
            Only include types in the specified namespace or its sub namespaces when scanning.
            </summary>
            <param name="registrationConventionHandler">The registration convention handler.</param>
            <param name="namespace">The namespace to include.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="registrationConventionHandler" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorExtensions">
            <summary>
            Partial implementation for auto-registration features.
            </summary>
            <summary>
            Extension methods for the <see cref="T:Catel.IoC.IServiceLocator"/> interface.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypesUsingAllConventions(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers the types using all conventions.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypesUsingDefaultNamingConvention(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers the types using the default naming convention.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>IRegistrationConventionHandler.</returns>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypesUsingDefaultFirstInterfaceConvention(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers the types using the first interface convention.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>IRegistrationConventionHandler.</returns>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypesUsingConvention``1(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers the types using the specified convention.
            </summary>
            <typeparam name="TRegistrationConvention">The type of the registration convention.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>IRegistrationConventionHandler.</returns>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorExtensions.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveTypeAndReturnNullIfNotRegistered``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Resolves the type from the <see cref="T:Catel.IoC.IServiceLocator" />. If the type is not registered, this method will return <c>null</c>.
            </summary>
            <typeparam name="T">The type of the service to retrieve.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved type or <c>null</c> if the type is not registered in the <see cref="T:Catel.IoC.IServiceLocator" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveTypeAndReturnNullIfNotRegistered(Catel.IoC.IServiceLocator,System.Type,System.Object)">
            <summary>
            Resolves the type from the <see cref="T:Catel.IoC.IServiceLocator"/>. If the type is not registered, this method will return <c>null</c>.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="serviceType">The type of the service to retrieve.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved type or <c>null</c> if the type is not registered in the <see cref="T:Catel.IoC.IServiceLocator"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveTypeUsingParameters``1(Catel.IoC.IServiceLocator,System.Object[],System.Object)">
            <summary>
            Resolves the type using parameters. This method combines the <see cref="M:Catel.IoC.IServiceLocator.GetRegistrationInfo(System.Type,System.Object)" /> and
            the <see cref="M:Catel.IoC.ITypeFactory.CreateInstanceWithParameters(System.Type,System.Object[])" /> to provide the functionality.
            </summary>
            <typeparam name="T">The type of the interface to resolve.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="parameters">The parameters.</param>
            <param name="tag">The tag.</param>
            <returns>The instantiated type constructed with the specified parameters.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="parameters" /> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The type is not registered in the container as transient type.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveTypeUsingParameters(Catel.IoC.IServiceLocator,System.Type,System.Object[],System.Object)">
            <summary>
            Resolves the type using parameters. This method combines the <see cref="M:Catel.IoC.IServiceLocator.GetRegistrationInfo(System.Type,System.Object)" /> and
            the <see cref="M:Catel.IoC.ITypeFactory.CreateInstanceWithParameters(System.Type,System.Object[])" /> to provide the functionality.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="serviceType">Type of the service.</param>
            <param name="parameters">The parameters.</param>
            <param name="tag">The tag.</param>
            <returns>The instantiated type constructed with the specified parameters.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="parameters" /> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The type is not registered in the container as transient type.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.IsTypeRegistered``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Determines whether the specified service type is registered.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified service type is registered; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.IsTypeRegisteredAsSingleton``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Determines whether the specified service type is registered as singleton.
            </summary>
            <typeparam name="TService">The service type.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the <typeparamref name="TService" /> type is registered as singleton, otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterInstance``1(Catel.IoC.IServiceLocator,``0,System.Object)">
            <summary>
            Registers a specific instance of a service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="instance">The specific instance to register.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeIfNotYetRegistered``2(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers an implementation of an service, but only if the type is not yet registered.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <typeparam name="TServiceImplementation">The type of the implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeIfNotYetRegisteredWithTag``2(Catel.IoC.IServiceLocator,System.Object,Catel.IoC.RegistrationType)">
            <summary>
            Registers an implementation of an service, but only if the type is not yet registered.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <typeparam name="TServiceImplementation">The type of the implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeIfNotYetRegistered(Catel.IoC.IServiceLocator,System.Type,System.Type,Catel.IoC.RegistrationType)">
            <summary>
            Registers an implementation of an service, but only if the type is not yet registered.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="serviceType">The type of the service.</param>
            <param name="serviceImplementationType">The type of the implementation.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceImplementationType" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeIfNotYetRegisteredWithTag(Catel.IoC.IServiceLocator,System.Type,System.Type,System.Object,Catel.IoC.RegistrationType)">
            <summary>
            Registers an implementation of an service, but only if the type is not yet registered.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="serviceType">The type of the service.</param>
            <param name="serviceImplementationType">The type of the implementation.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceImplementationType" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterType``1(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType)">
            <summary>
            Registers a service where the implementation type is the same as the registered type.
            </summary>
            <typeparam name="TServiceImplementation">The type of the service definition and implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeWithTag``1(Catel.IoC.IServiceLocator,System.Object,Catel.IoC.RegistrationType)">
            <summary>
            Registers a service where the implementation type is the same as the registered type.
            </summary>
            <typeparam name="TServiceImplementation">The type of the service definition and implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterType``2(Catel.IoC.IServiceLocator,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <typeparam name="TServiceImplementation">The type of the implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeWithTag``2(Catel.IoC.IServiceLocator,System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <typeparam name="TServiceImplementation">The type of the implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterType``1(Catel.IoC.IServiceLocator,System.Func{Catel.IoC.ServiceLocatorRegistration,``0},Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of ea service using a create type callback
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="createServiceFunc">The create service function.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="createServiceFunc" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeWithTag``1(Catel.IoC.IServiceLocator,System.Func{Catel.IoC.ServiceLocatorRegistration,``0},System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of ea service using a create type callback
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="createServiceFunc">The create service function.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="createServiceFunc" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveType``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Resolves an instance of the type registered on the service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <returns>An instance of the type registered on the service.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.TypeNotRegisteredException">The type is not found in any container.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.TryResolveType``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Try to resolve an instance of the type registered on the service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <returns>An instance of the type registered on the service or <c>null</c> if missing.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.ResolveTypes``1(Catel.IoC.IServiceLocator)">
            <summary>
            Resolves all instances of the type registered on the service.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <returns>All instance of the type registered on the service.</returns>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RemoveType``1(Catel.IoC.IServiceLocator,System.Object)">
            <summary>
            Removes the type from the service locator.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeAndInstantiate``1(Catel.IoC.IServiceLocator)">
            <summary>
            Registers a service where the implementation type is the same as the registered type and immediately instantiates the type using the type factory.
            </summary>
            <typeparam name="TServiceImplementation">The type of the service definition and implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorExtensions.RegisterTypeAndInstantiate``2(Catel.IoC.IServiceLocator)">
            <summary>
            Registers a service where the implementation type is the same as the registered type and immediately instantiates the type using the type factory.
            </summary>
            <typeparam name="TService">The type of the service.</typeparam>
            <typeparam name="TServiceImplementation">The type of the service definition and implementation.</typeparam>
            <param name="serviceLocator">The service locator.</param>
            <returns>TService.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="T:Catel.IoC.TypeFactoryExtensions">
            <summary>
            Extension methods for the <see cref="T:Catel.IoC.ITypeFactory"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeFactoryExtensions.CreateInstance``1(Catel.IoC.ITypeFactory)">
            <summary>
            Creates an instance of the specified type using dependency injection.
            </summary>
            <typeparam name="T">The type to instantiate.</typeparam>
            <param name="typeFactory">The type factory.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeFactory" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactoryExtensions.CreateInstanceWithParameters``1(Catel.IoC.ITypeFactory,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            </summary>
            <typeparam name="T">The type to instantiate.</typeparam>
            <param name="typeFactory">The type factory.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeFactory"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactoryExtensions.CreateInstanceWithParametersAndAutoCompletion``1(Catel.IoC.ITypeFactory,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            <para />
            This method will also auto-complete any additional dependencies that can be resolved from the <see cref="T:Catel.IoC.IServiceLocator"/>.
            </summary>
            <typeparam name="T">The type to instantiate.</typeparam>
            <param name="typeFactory">The type factory.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeFactory"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.IDependencyResolver">
            <summary>
            Provides a simplified way to resolve dependencies and allows customization of the 
            way dependencies are resolved.
            </summary>
        </member>
        <member name="M:Catel.IoC.IDependencyResolver.CanResolve(System.Type,System.Object)">
            <summary>
            Determines whether the specified type with the specified tag can be resolved.
            </summary>
            <param name="type">The type.</param>
            <param name="tag">The tag.</param>
            <returns><c>true</c> if the specified type with the specified tag can be resolved; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolver.CanResolveAll(System.Type[])">
            <summary>
            Determines whether all types specified can be resolved. Though <see cref="M:Catel.IoC.CatelDependencyResolver.ResolveAll(System.Type[],System.Object)"/> will return <c>null</c>
            at the array index when a type cannot be resolved, this method will actually check whether all the specified types
            are registered.
            <para />
            It is still possible to call <see cref="M:Catel.IoC.CatelDependencyResolver.ResolveAll(System.Type[],System.Object)"/>, even when this method returns <c>false</c>.
            </summary>
            <param name="types">The types.</param>
            <returns><c>true</c> if all types specified can be resolved; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="types"/> is <c>null</c> or empty.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolver.Resolve(System.Type,System.Object)">
            <summary>
            Resolves the specified type with the specified tag.
            </summary>
            <param name="type">The type.</param>
            <param name="tag">The tag.</param>
            <returns>The resolved object or <c>null</c> if the type could not be resolved.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolver.ResolveAll(System.Type[],System.Object)">
            <summary>
            Resolves the specified types with the specified tag.
            </summary>
            <param name="types">The types.</param>
            <param name="tag">The tag.</param>
            <returns>A lost of resolved types. If one of the types cannot be resolved, that location in the array will be <c>null</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="types"/> is <c>null</c> or empty.</exception>
        </member>
        <member name="T:Catel.IoC.IDependencyResolverManager">
            <summary>
            Allows the registration and retrieval of dependency resolvers for specific types or instances.
            </summary>
        </member>
        <member name="P:Catel.IoC.IDependencyResolverManager.DefaultDependencyResolver">
            <summary>
            Gets or sets the default dependency resolver.
            </summary>
            <value>The default dependency resolver.</value>
            <exception cref="T:System.ArgumentNullException">The <paramref name="value"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolverManager.RegisterDependencyResolverForInstance(System.Object,Catel.IoC.IDependencyResolver)">
            <summary>
            Registers the dependency resolver for a specific instance.
            </summary>
            <param name="instance">The instance.</param>
            <param name="dependencyResolver">The dependency resolver.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolverManager.GetDependencyResolverForInstance(System.Object)">
            <summary>
            Gets the dependency resolver for a specific instance. If there is no dependency resolver registered for
            the specific instance, this method will use the <see cref="M:Catel.IoC.IDependencyResolverManager.GetDependencyResolverForType(System.Type)"/>.
            </summary>
            <param name="instance">The instance to retrieve the dependency resolver for.</param>
            <returns>The <see cref="T:Catel.IoC.IDependencyResolver"/> for the object.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolverManager.RegisterDependencyResolverForType(System.Type,Catel.IoC.IDependencyResolver)">
            <summary>
            Registers the dependency resolver for a specific type.
            </summary>
            <param name="type">The type.</param>
            <param name="dependencyResolver">The dependency resolver.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dependencyResolver" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IDependencyResolverManager.GetDependencyResolverForType(System.Type)">
            <summary>
            Gets the dependency resolver for a specific type. If there is no dependency resolver registered for
            the specific type, this method will returns the <see cref="P:Catel.IoC.IDependencyResolverManager.DefaultDependencyResolver"/>.
            </summary>
            <param name="type">The type.</param>
            <returns>The <see cref="T:Catel.IoC.IDependencyResolver"/> for the type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.INeedCustomInitialization">
            <summary>
            Interface that defines that a type needs initialization after it has been created by the
            <see cref="T:Catel.IoC.TypeFactory"/>.
            <para />
            As soon as a type is created, the <see cref="T:Catel.IoC.TypeFactory"/> will check whether it implements the <see cref="T:Catel.IoC.INeedCustomInitialization"/>
            interface. If so, it will call the <see cref="M:Catel.IoC.INeedCustomInitialization.Initialize"/> method.
            <para />
            It is best to explicitly implement this interface to prevent misuse.
            </summary>
        </member>
        <member name="M:Catel.IoC.INeedCustomInitialization.Initialize">
            <summary>
            Initializes this instance.
            </summary>
        </member>
        <member name="T:Catel.IoC.IRegistrationConvention">
            <summary>
            The registration convention interface.
            </summary>
        </member>
        <member name="P:Catel.IoC.IRegistrationConvention.RegistrationType">
            <summary>
            Gets the type of the registration.
            </summary>
            <value>
            The type of the registration.
            </value>
        </member>
        <member name="M:Catel.IoC.IRegistrationConvention.Process(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Processes the specified types to register.
            </summary>
            <param name="typesToRegister">The types to register.</param>
        </member>
        <member name="T:Catel.IoC.IRegistrationConventionHandler">
            <summary>
            The registration convention handler.
            </summary>
        </member>
        <member name="P:Catel.IoC.IRegistrationConventionHandler.RegistrationConventions">
            <summary>
            Gets the registration conventions.
            </summary>
            <value>
            The registration conventions.
            </value>
        </member>
        <member name="P:Catel.IoC.IRegistrationConventionHandler.TypeFilter">
            <summary>
            Gets the type filter.
            </summary>
            <value>
            The type filter.
            </value>
        </member>
        <member name="P:Catel.IoC.IRegistrationConventionHandler.AssemblyFilter">
            <summary>
            Gets the assembly filter.
            </summary>
            <value>
            The assembly filter.
            </value>
        </member>
        <member name="M:Catel.IoC.IRegistrationConventionHandler.RegisterConvention``1(Catel.IoC.RegistrationType)">
            <summary>
            Registers the convention.
            </summary>
            <typeparam name="TRegistrationConvention">The type of the registration convention.</typeparam>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:Catel.IoC.IRegistrationConventionHandler.ApplyConventions">
            <summary>
            Applies the registered conventions.
            </summary>
        </member>
        <member name="M:Catel.IoC.IRegistrationConventionHandler.AddAssemblyToScan(System.Reflection.Assembly)">
            <summary>
            Adds the assembly to scan.
            </summary>
            <param name="assembly">The assembly.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="assembly"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.RegistrationType">
            <summary>
            Available registration types.
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationType.Singleton">
            <summary>
            Singleton mode which means that the same instance will be returned every time a type is resolved.
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationType.Transient">
            <summary>
            Transient mode which means that a new instance will be returned every time a type is resolved.
            </summary>
        </member>
        <member name="T:Catel.IoC.IServiceLocator">
            <summary>
            The service locator which is used to retrieve the right instances of services.
            <para />
            The cool thing about this service locator is that it can use external containers (from example from Unity)
            to resolve types if the types are not registered in the container itself. To do this, use the following code:
            <para />
            <code>
              var serviceLocator = ServiceLocator.Default;
              serviceLocator.RegisterExternalContainer(myUnityContainer);
            </code>
            <para />
            The service locator will use the external containers in case the current container does not contain the
            type. If the external containers also don't contain the type, there is one last way to resolve the type
            using the <see cref="E:Catel.IoC.IServiceLocator.MissingType"/> event. The event passes <see cref="T:Catel.IoC.MissingTypeEventArgs"/> that contains
            the type the service locator is looking for. By setting the <see cref="P:Catel.IoC.MissingTypeEventArgs.ImplementingInstance"/> or 
            <see cref="P:Catel.IoC.MissingTypeEventArgs.ImplementingType"/> in the handler, the service locator will resolve the type.
            </summary>
        </member>
        <member name="P:Catel.IoC.IServiceLocator.CanResolveNonAbstractTypesWithoutRegistration">
            <summary>
            Gets or sets a value indicating whether the service locator can resolve non abstract types without registration.
            </summary>
        </member>
        <member name="P:Catel.IoC.IServiceLocator.AutoRegisterTypesViaAttributes">
            <summary>
            Gets or sets a value indicating whether this service locators will automatically register types via attributes.
            </summary>
            <remarks>
            By default, this value is <c>true</c>.
            </remarks>
        </member>
        <member name="P:Catel.IoC.IServiceLocator.IgnoreRuntimeIncorrectUsageOfRegisterAttribute">
            <summary>
            Gets or sets a value indicating whether this service locators will ignore incorrect usage of <see cref="T:Catel.IoC.ServiceLocatorRegistrationAttribute"/> and do not throw <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <remarks>
            By default, this value is <c>true</c>.
            </remarks>
        </member>
        <member name="E:Catel.IoC.IServiceLocator.MissingType">
            <summary>
            Occurs when a type cannot be resolved the by service locator. It first tries to raise this event.
            <para />
            If there are no handlers or no handler can fill up the missing type, an exception will be thrown by
            the service locator.
            </summary>
        </member>
        <member name="E:Catel.IoC.IServiceLocator.TypeRegistered">
            <summary>
            Occurs when a type is registered in the service locator.
            </summary>
        </member>
        <member name="E:Catel.IoC.IServiceLocator.TypeInstantiated">
            <summary>
            Occurs when a type is instantiated in the service locator.
            </summary>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.GetRegistrationInfo(System.Type,System.Object)">
            <summary>
            Gets the registration info about the specified type.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="tag">The tag the service is registered with. The default value is <c>null</c>.</param>
            <returns>The <see cref="T:Catel.IoC.RegistrationInfo" /> or <c>null</c> if the type is not registered.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.IsTypeRegistered(System.Type,System.Object)">
            <summary>
            Determines whether the specified service type is registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns><c>true</c> if the specified service type is registered; otherwise, <c>false</c>.</returns>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.IsTypeRegisteredAsSingleton(System.Type,System.Object)">
            <summary>
            Determines whether the specified service type is registered as singleton.
            </summary>
            <param name="serviceType">The service type.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns><c>true</c> if the <paramref name="serviceType" /> type is registered as singleton, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.RegisterInstance(System.Type,System.Object,System.Object)">
            <summary>
            Registers a specific instance of a service. 
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="instance">The instance.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance"/> is not of the right type.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.RegisterType(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service, but only if the type is not yet registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="serviceImplementationType">The type of the implementation.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceImplementationType" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.RegisterType(System.Type,System.Func{Catel.IoC.ServiceLocatorRegistration,System.Object},System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service using a create type callback, but only if the type is not yet registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="createServiceFunc">The create service function.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="createServiceFunc" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.ResolveType(System.Type,System.Object)">
            <summary>
            Resolves an instance of the type registered on the service.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns>An instance of the type registered on the service.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.TypeNotRegisteredException">The type is not found in any container.</exception>
            <remarks>
            Note that the actual implementation lays in the hands of the IoC technique being used.
            </remarks>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.ResolveTypes(System.Type)">
            <summary>
            Resolves all instances of the type registered on the service.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <returns>All instance of the type registered on the service.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.AreAllTypesRegistered(System.Type[])">
            <summary>
            Determines whether all the specified types are registered with the service locator.
            </summary>
            <remarks>
            Note that this method is written for optimalization by the <see cref="T:Catel.IoC.TypeFactory"/>. This means that the 
            <see cref="T:Catel.IoC.TypeFactory"/> does not need to call the <see cref="T:Catel.IoC.ServiceLocator"/> several times to construct
            a single type using dependency injection.
            <para />
            Only use this method if you know what you are doing, otherwise use the <see cref="M:Catel.IoC.ServiceLocator.IsTypeRegistered(System.Type,System.Object)"/> instead.
            </remarks>
            <param name="types">The types that should be registered.</param>
            <returns><c>true</c> if all the specified types are registered with this instance of the <see cref="T:Catel.IoC.IServiceLocator" />; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="types"/> is <c>null</c> or an empty array.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.ResolveAllTypes(System.Type[])">
            <summary>
            Resolves all the specified types.
            </summary>
            <remarks>
            Note that this method is written for optimalization by the <see cref="T:Catel.IoC.TypeFactory"/>. This means that the 
            <see cref="T:Catel.IoC.TypeFactory"/> does not need to call the <see cref="T:Catel.IoC.ServiceLocator"/> several times to construct
            a single type using dependency injection.
            <para />
            Only use this method if you know what you are doing, otherwise use the <see cref="M:Catel.IoC.ServiceLocator.IsTypeRegistered(System.Type,System.Object)"/> instead.
            </remarks>
            <param name="types">The collection of types that should be resolved.</param>
            <returns>The resolved types in the same order as the types.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="types"/> is <c>null</c> or an empty array.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.RemoveType(System.Type,System.Object)">
            <summary>
            Removes the registered type with the specific tag.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag of the registered the service. The default value is <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.IServiceLocator.RemoveAllTypes(System.Type)">
            <summary>
            Removes all registered types of a certain service type.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.IServiceLocatorInitializer">
            <summary>
            If a class implements this interface, it will automatically be called when a new <see cref="T:Catel.IoC.IServiceLocator"/>
            is created.
            </summary>
        </member>
        <member name="M:Catel.IoC.IServiceLocatorInitializer.Initialize(Catel.IoC.IServiceLocator)">
            <summary>
            Initializes the specified service locator.
            </summary>
            <param name="serviceLocator">The service locator.</param>
        </member>
        <member name="T:Catel.IoC.ITypeFactory">
            <summary>
            Type factory which will cache constructors to ensure the best performance available.
            </summary>
        </member>
        <member name="M:Catel.IoC.ITypeFactory.CreateInstance(System.Type)">
            <summary>
            Creates an instance of the specified type using dependency injection.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ITypeFactory.CreateInstanceWithParameters(System.Type,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ITypeFactory.ClearCache">
            <summary>
            Clears the cache of all constructors.
            <para />
            This call is normally not necessary since the type factory should keep an eye on the 
            <see cref="E:Catel.IoC.IServiceLocator.TypeRegistered"/> event to invalidate the cache.
            </summary>
        </member>
        <member name="M:Catel.IoC.ITypeFactory.CreateInstanceWithParametersAndAutoCompletion(System.Type,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            <para />
            This method will also auto-complete any additional dependencies that can be resolved from the <see cref="T:Catel.IoC.IServiceLocator"/>.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.ITypeRequestPath">
            <summary>
            Interface defining the public members of <see cref="T:Catel.IoC.TypeRequestPath"/> to be used inside exceptions.
            </summary>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.IgnoreValueTypes">
            <summary>
            Gets a value indicating whether value types should be ignored in the path.
            </summary>
            <value><c>true</c> if value types should be ignored; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.AllTypes">
            <summary>
            Gets all types in the right order.
            </summary>
            <value>All types.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.FirstType">
            <summary>
            Gets the first type in the type path.
            </summary>
            <value>The first type.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.LastType">
            <summary>
            Gets the last type in the type path.
            </summary>
            <value>The last type.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.IsValid">
            <summary>
            Gets a value indicating whether this path is valid, which means that the same type does not occur multiple times.
            </summary>
            <value><c>true</c> if this instance is valid; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.TypeCount">
            <summary>
            Gets the number of types in the type path.
            </summary>
            <value>The type count.</value>
        </member>
        <member name="P:Catel.IoC.ITypeRequestPath.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="M:Catel.IoC.ITypeRequestPath.ThrowsExceptionIfInvalid">
            <summary>
            Throws the <see cref="T:Catel.IoC.CircularDependencyException"/> if the <see cref="P:Catel.IoC.TypeRequestPath.IsValid"/> is <c>false</c>.
            </summary>
        </member>
        <member name="T:Catel.IoC.IoCConfiguration">
            <summary>
            Contains configurations for the IoC implementation in Catel.
            </summary>
        </member>
        <member name="P:Catel.IoC.IoCConfiguration.DefaultServiceLocator">
            <summary>
            Gets or sets the default service locator.
            </summary>
            <value>The default service locator.</value>
        </member>
        <member name="P:Catel.IoC.IoCConfiguration.DefaultDependencyResolver">
            <summary>
            Gets or sets the default dependency resolver.
            </summary>
            <value>The default dependency resolver.</value>
        </member>
        <member name="P:Catel.IoC.IoCConfiguration.DefaultTypeFactory">
            <summary>
            Gets or sets the default type factory.
            </summary>
            <value>The default type factory.</value>
        </member>
        <member name="M:Catel.IoC.IoCConfiguration.UpdateDefaultComponents">
            <summary>
            Updates the default components.
            <para />
            This method should be called when any of the factory methods has been changed.
            </summary>
            <exception cref="T:System.Exception">The method fails to create the <see cref="T:Catel.IoC.IServiceLocator"/> using the factory.</exception>
        </member>
        <member name="T:Catel.IoC.IoCFactory">
            <summary>
            Factory responsible for creating IoC components.
            </summary>
        </member>
        <member name="M:Catel.IoC.IoCFactory.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.IoC.IoCFactory"/> class.
            </summary>
        </member>
        <member name="P:Catel.IoC.IoCFactory.CreateServiceLocatorFunc">
            <summary>
            Gets or sets the create service locator function.
            </summary>
            <value>The create service locator function.</value>
        </member>
        <member name="P:Catel.IoC.IoCFactory.CreateDependencyResolverFunc">
            <summary>
            Gets or sets the create dependency resolverfunction.
            </summary>
            <value>The create dependency resolver function.</value>
        </member>
        <member name="P:Catel.IoC.IoCFactory.CreateTypeFactoryFunc">
            <summary>
            Gets or sets the create default service locator function.
            </summary>
            <value>The create default service locator function.</value>
        </member>
        <member name="M:Catel.IoC.IoCFactory.OnAssemblyLoaded(System.Object,Catel.Reflection.AssemblyLoadedEventArgs)">
            <summary>
            Called when an assembly gets loaded.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:Catel.Reflection.AssemblyLoadedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.IoC.IoCFactory.CreateServiceLocator(System.Boolean)">
            <summary>
            Creates a service locator with all the customized components.
            </summary>
            <param name="initializeServiceLocator">if set to <c>true</c>, the <see cref="T:Catel.IoC.IServiceLocator"/> will be initialized using the <see cref="T:Catel.IoC.IServiceLocatorInitializer"/> interface.</param>
            <returns>The newly created <see cref="T:Catel.IoC.IServiceLocator" />.</returns>
        </member>
        <member name="T:Catel.IoC.LateBoundImplementation">
            <summary>
            Class representing a late-bound implementation. This means that a type registered in the 
            <see cref="T:Catel.IoC.ServiceLocator"/> is registered with an unknown callback and the implementation
            type could not be determined at registration time.
            </summary>
        </member>
        <member name="M:Catel.IoC.LateBoundImplementation.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:Catel.IoC.LateBoundImplementation"/> class from being created.
            </summary>
        </member>
        <member name="T:Catel.IoC.RegistrationConventionHandler">
            <summary>
            Represents the <see cref="T:Catel.IoC.IRegistrationConventionHandler"/> implementation.
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._default">
            <summary>
            The static instance of the registration convention handler.
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._assemblies">
            <summary>
            The assemblies
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._registeredConventions">
            <summary>
            The registered conventions
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._serviceLocator">
            <summary>
            The service locator
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._typeFactory">
            <summary>
            The type factory
            </summary>
        </member>
        <member name="F:Catel.IoC.RegistrationConventionHandler._retrievedTypes">
            <summary>
            The retrieved types
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandler.#ctor(Catel.IoC.IServiceLocator,Catel.IoC.ITypeFactory)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.RegistrationConventionHandler" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="typeFactory">The type factory.</param>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionHandler.Default">
            <summary>
            Gets the default instance of the registration convention handler.
            </summary>
            <value>The default instance.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionHandler.RegistrationConventions">
            <summary>
            Gets the registration conventions.
            </summary>
            <value>The registration conventions.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionHandler.TypeFilter">
            <summary>
            Gets the type filter.
            </summary>
            <value>The type filter.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationConventionHandler.AssemblyFilter">
            <summary>
            Gets the assembly filter.
            </summary>
            <value>The assembly filter.</value>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandler.RegisterConvention``1(Catel.IoC.RegistrationType)">
            <summary>
            Registers the convention.
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandler.ApplyConventions">
            <summary>
            Applies the registered conventions.
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandler.AddAssemblyToScan(System.Reflection.Assembly)">
            <summary>
            Adds the assembly to scan.
            </summary>
            <param name="assembly">The assembly.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="assembly" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.RegistrationConventionHandler.RemoveIfAlreadyRegistered(System.Type)">
            <summary>
            Removes the specified type in the container if already registered.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.IoC.RegistrationInfo">
            <summary>
            Class containing the registration info about a particular type registered in the <see cref="T:Catel.IoC.ServiceLocator"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.RegistrationInfo.#ctor(System.Type,System.Type,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.RegistrationInfo" /> class.
            </summary>
            <param name="declaringType">Type of the declaring.</param>
            <param name="implementingType">Type of the implementing.</param>
            <param name="registrationType">Type of the registration.</param>
            <param name="isTypeInstantiatedForSingleton">If set to <c>true</c> there already is an instance of this singleton registration.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="declaringType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="implementingType" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.RegistrationInfo.DeclaringType">
            <summary>
            Gets the declaring type, an interface in most cases.
            </summary>
            <value>The declaring type.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationInfo.ImplementingType">
            <summary>
            Gets the implementing type.
            </summary>
            <value>The implementing type.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationInfo.RegistrationType">
            <summary>
            Gets the registration type.
            </summary>
            <value>The registration type.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationInfo.IsLateBoundRegistration">
            <summary>
            Gets a value indicating whether this is a late-bound registration, meaning that the type can only
            be determined after the type is created by a callback.
            </summary>
            <value><c>true</c> if this instance is late bound registration; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.IoC.RegistrationInfo.IsTypeInstantiatedForSingleton">
            <summary>
            Gets or sets a value indicating whether there is already an instance of this type instantiated when registered as <see cref="F:Catel.IoC.RegistrationType.Singleton"/>.
            </summary>
            <remarks>
            Note that this value is always <c>false</c> for types that are not registered as <see cref="F:Catel.IoC.RegistrationType.Singleton"/>.
            </remarks>
            <value><c>true</c> if there is already an instance of this singleton registration; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.IoC.ServiceLocator">
            <summary>
            Default implementation of the <see cref="T:Catel.IoC.IServiceLocator"/> interface.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator._autoRegistrationManager">
            <summary>
            The auto registration manager which handles the registration via attributes.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator._registeredInstances">
            <summary>
            A list of registered instances of objects.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator._registeredTypes">
            <summary>
            A list of registered types including the types to instantiate.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator._currentTypeRequestPath">
            <summary>
            The current type request path.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocator._typeFactory">
            <summary>
            The type factory.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ServiceLocator"/> class.
            </summary>
        </member>
        <member name="P:Catel.IoC.ServiceLocator.Default">
            <summary>
            Gets or sets the instance of the default service locator. This property serves as as singleton.
            </summary>
            <value>The default instance.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocator.CanResolveNonAbstractTypesWithoutRegistration">
            <summary>
            Gets or sets a value indicating whether the service locator can resolve non abstract types without registration.
            </summary>
        </member>
        <member name="P:Catel.IoC.ServiceLocator.IgnoreRuntimeIncorrectUsageOfRegisterAttribute">
            <summary>
            Gets or sets a value indicating whether this service locators will ignore incorrect usage of <see cref="T:Catel.IoC.ServiceLocatorRegistrationAttribute"/> 
            and do not throw <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <remarks>
            By default, this value is <c>true</c>.
            </remarks>
        </member>
        <member name="P:Catel.IoC.ServiceLocator.AutoRegisterTypesViaAttributes">
            <summary>
            Gets or sets a value indicating whether this service locators will automatically register types via attributes.
            </summary>
            <remarks>
            By default, this value is <c>false</c>
            </remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.GetRegistrationInfo(System.Type,System.Object)">
            <summary>
            Gets the registration info about the specified type.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="tag">The tag the service is registered with. The default value is <c>null</c>.</param>
            <returns>The <see cref="T:Catel.IoC.RegistrationInfo" /> or <c>null</c> if the type is not registered.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.IsTypeRegistered(System.Type,System.Object)">
            <summary>
            Determines whether the specified service type is registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns><c>true</c> if the specified service type is registered; otherwise, <c>false</c>.</returns>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.IsTypeRegisteredAsSingleton(System.Type,System.Object)">
            <summary>
            Determines whether the specified service type is registered as singleton.
            </summary>
            <param name="serviceType">The service type.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns><c>true</c> if the <paramref name="serviceType" /> type is registered as singleton, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RegisterInstance(System.Type,System.Object,System.Object)">
            <summary>
            Registers a specific instance of a service. 
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="instance">The instance.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="instance"/> is not of the right type.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RegisterType(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service, but only if the type is not yet registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="serviceImplementationType">The type of the implementation.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceImplementationType" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RegisterType(System.Type,System.Func{Catel.IoC.ServiceLocatorRegistration,System.Object},System.Object,Catel.IoC.RegistrationType,System.Boolean)">
            <summary>
            Registers an implementation of a service using a create type callback, but only if the type is not yet registered.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="createServiceFunc">The create service function.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type. The default value is <see cref="F:Catel.IoC.RegistrationType.Singleton" />.</param>
            <param name="registerIfAlreadyRegistered">If set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">If <paramref name="createServiceFunc" /> is <c>null</c>.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.ResolveType(System.Type,System.Object)">
            <summary>
            Resolves an instance of the type registered on the service.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns>An instance of the type registered on the service.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.TypeNotRegisteredException">The type is not found in any container.</exception>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.ResolveTypes(System.Type)">
            <summary>
            Resolves all instances of the type registered on the service.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <returns>All instance of the type registered on the service.</returns>
            <remarks>Note that the actual implementation lays in the hands of the IoC technique being used.</remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.AreAllTypesRegistered(System.Type[])">
            <summary>
            Determines whether all the specified types are registered with the service locator.
            </summary>
            <remarks>
            Note that this method is written for optimalization by the <see cref="T:Catel.IoC.TypeFactory"/>. This means that the 
            <see cref="T:Catel.IoC.TypeFactory"/> does not need to call the <see cref="T:Catel.IoC.ServiceLocator"/> several times to construct
            a single type using dependency injection.
            <para />
            Only use this method if you know what you are doing, otherwise use the <see cref="M:Catel.IoC.ServiceLocator.IsTypeRegistered(System.Type,System.Object)"/> instead.
            </remarks>
            <param name="types">The types that should be registered.</param>
            <returns><c>true</c> if all the specified types are registered with this instance of the <see cref="T:Catel.IoC.IServiceLocator" />; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="types"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.ResolveAllTypes(System.Type[])">
            <summary>
            Resolves all the specified types.
            </summary>
            <remarks>
            Note that this method is written for optimalization by the <see cref="T:Catel.IoC.TypeFactory"/>. This means that the 
            <see cref="T:Catel.IoC.TypeFactory"/> does not need to call the <see cref="T:Catel.IoC.ServiceLocator"/> several times to construct
            a single type using dependency injection.
            <para />
            Only use this method if you know what you are doing, otherwise use the <see cref="M:Catel.IoC.ServiceLocator.ResolveType(System.Type,System.Object)"/> instead.
            </remarks>
            <param name="types">The collection of types that should be resolved.</param>
            <returns>The resolved types in the same order as the types.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="types"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RemoveType(System.Type,System.Object)">
            <summary>
            Removes the registered type with the specific tag.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="tag">The tag of the registered the service. The default value is <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RemoveAllTypes(System.Type)">
            <summary>
            Removes all registered types of a certain service type.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
        </member>
        <member name="E:Catel.IoC.ServiceLocator.MissingType">
            <summary>
            Occurs when a type cannot be resolved the by service locator. It first tries to raise this event.
            <para/>
            If there are no handlers or no handler can fill up the missing type, an exception will be thrown by
            the service locator.
            </summary>
        </member>
        <member name="E:Catel.IoC.ServiceLocator.TypeRegistered">
            <summary>
            Occurs when a type is registered in the service locator.
            </summary>
        </member>
        <member name="E:Catel.IoC.ServiceLocator.TypeInstantiated">
            <summary>
            Occurs when a type is instantiated in the service locator.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RegisterInstance(System.Type,System.Object,System.Object,System.Object)">
            <summary>
            Registers a specific instance of an service.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="instance">The specific instance to register.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="originalContainer">The original container where the instance was found in.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.RegisterType(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType,System.Boolean,System.Object,System.Func{Catel.IoC.ServiceLocatorRegistration,System.Object})">
            <summary>
            Registers the specific implementing type for the service type.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="serviceImplementationType">Type of the implementing.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <param name="registrationType">The registration type.</param>
            <param name="registerIfAlreadyRegistered">if set to <c>true</c>, an older type registration is overwritten by this new one.</param>
            <param name="originalContainer">The original container where the type was found in.</param>
            <param name="createServiceFunc">The create service function.</param>
            <exception cref="T:System.InvalidOperationException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.ResolveTypeFromKnownContainer(System.Type,System.Object)">
            <summary>
            Resolves the type from a known container.
            </summary>
            <param name="serviceType">Type of the service.</param>
            <param name="tag">The tag to register the service with. The default value is <c>null</c>.</param>
            <returns>An instance of the type registered on the service.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The type is not found in any container.</exception>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.CreateServiceInstance(Catel.IoC.ServiceLocatorRegistration)">
            <summary>
            Creates the service instance.
            </summary>
            <param name="registration">The registration.</param>
            <returns>The service instance.</returns>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.CompleteTypeRequestPathIfRequired(Catel.IoC.TypeRequestInfo)">
            <summary>
            Completes the type request path by checking if the currently created type is the same as the first
            type meaning that the type is successfully created and the current type request path can be set to <c>null</c>.
            </summary>
            <param name="typeRequestInfoForTypeJustConstructed">The type request info.</param>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.ThrowTypeNotRegisteredException(System.Type,System.String)">
            <summary>
            Throws the <see cref="T:Catel.IoC.TypeNotRegisteredException" /> but will also reset the current type request path.
            </summary>
            <param name="type">The type.</param>
            <param name="message">The message.</param>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.System#IServiceProvider#GetService(System.Type)">
            <summary>
            Gets the service object of the specified type.
            </summary>
            <param name="serviceType">An object that specifies the type of service object to get.</param>
            <returns>A service object of type <paramref name="serviceType" />.-or- null if there is no service object of type <paramref name="serviceType" />.</returns>
        </member>
        <member name="M:Catel.IoC.ServiceLocator.Dispose">
            <summary>
            Disposes this instance and all registered instances.
            </summary>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorAutoRegistrationManager">
            <summary>
            Manager that can handle the registrations of the service locator.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager._pendingTypes">
            <summary>
            The pending types.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager._serviceLocator">
            <summary>
            The service locator this manager is created for.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager._autoRegisterTypesViaAttributes">
            <summary>
            A value indicating whether this service locators will automatically register types via attributes.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager._hasInspectedTypesAtLeastOnce">
            <summary>
            Indicates whether the service locator has inspected the types at least once.
            </summary>
        </member>
        <member name="F:Catel.IoC.ServiceLocatorAutoRegistrationManager._isInspectedTypes">
            <summary>
            Indicates whether the loaded types are inspecting by this service locator. 
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorAutoRegistrationManager.#ctor(Catel.IoC.IServiceLocator)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ServiceLocatorAutoRegistrationManager" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorAutoRegistrationManager.IgnoreRuntimeIncorrectUsageOfRegisterAttribute">
            <summary>
            Gets or sets a value indicating whether this service locators will ignore incorrect usage of <see cref="T:Catel.IoC.ServiceLocatorRegistrationAttribute"/> 
            and do not throw <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <remarks>
            By default, this value is <c>true</c>.
            </remarks>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorAutoRegistrationManager.AutoRegisterTypesViaAttributes">
            <summary>
            Gets or sets a value indicating whether this service locators will automatically register types via attributes.
            </summary>
            <remarks>
            By default, this value is <c>false</c>.
            </remarks>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorAutoRegistrationManager.InspectLoadedAssemblies">
            <summary>
            Inspect loaded assemblies.
            </summary>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorRegistration">
            <summary>
            Contains all information about the registration of an entry in the <see cref="T:Catel.IoC.ServiceLocator"/>.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorRegistration.#ctor(System.Type,System.Type,System.Object,Catel.IoC.RegistrationType,System.Func{Catel.IoC.ServiceLocatorRegistration,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ServiceLocatorRegistration" /> class.
            </summary>
            <param name="declaringType">Type of the declaring.</param>
            <param name="implementingType">Type of the implementing.</param>
            <param name="tag">The tag.</param>
            <param name="registrationType">Type of the registration.</param>
            <param name="createServiceFunc">The create service function.</param>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.CreateServiceFunc">
            <summary>
            Gets the create service function.
            </summary>
            <value>The create service function.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.DeclaringType">
            <summary>
            Gets the declaring type.
            </summary>
            <value>The declaring type.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.DeclaringTypeName">
            <summary>
            Gets the name of the declaring type.
            </summary>
            <value>The name of the declaring type.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.ImplementingType">
            <summary>
            Gets the implementing type.
            </summary>
            <value>The implementing type.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.ImplementingTypeName">
            <summary>
            Gets the name of the implementing type.
            </summary>
            <value>The name of the implementing type.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.RegistrationType">
            <summary>
            Gets the type of the registration.
            </summary>
            <value>The type of the registration.</value>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistration.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.IoC.ServiceLocatorRegistrationGroup">
            <summary>
            Represents a group of service locator registrations. This is needed to implement automatic
            resolving of related (generic) types on the same singleton instance of a registered service.
            </summary>
        </member>
        <member name="M:Catel.IoC.ServiceLocatorRegistrationGroup.#ctor(Catel.IoC.ServiceLocatorRegistration)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.ServiceLocatorRegistrationGroup"/> class.
            </summary>
            <param name="entryRegistration">The entry registration.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="entryRegistration"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.ServiceLocatorRegistrationGroup.EntryRegistration">
            <summary>
            Gets the entry registration.
            </summary>
            <value>The entry registration.</value>
        </member>
        <member name="T:Catel.IoC.TypeFactory">
            <summary>
            Type factory which will cache constructors to ensure the best performance available.
            <para />
            This class will automatically watch the <see cref="E:Catel.IoC.IServiceLocator.TypeRegistered"/> event and clear
            the cache automatically when the event occurs.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory.ApiCop">
            <summary>
            The API cop.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory.TypeRequestPathName">
            <summary>
            The type request path name.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory._specificConstructorCacheWithoutAutoCompletion">
            <summary>
            Cache containing all last used constructors for a type without auto-completion.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory._specificConstructorCacheWithAutoCompletion">
            <summary>
            Cache containing all last used constructors for a type with auto-completion.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory._typeConstructorsMetadata">
            <summary>
            Cache containing all the metadata of a specific type so this doesn't have to be queried multiple times.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory._serviceLocator">
            <summary>
            The service locator.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeFactory._currentTypeRequestPath">
            <summary>
            The current type request path.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeFactory.#ctor(Catel.IoC.IServiceLocator)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeFactory" /> class.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serviceLocator"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.TypeFactory.Default">
            <summary>
            Gets the default instance.
            </summary>
            <value>The instance.</value>
            <remarks>
            Do not move initialization to a field, it will cause a deadlock with the initialization of the default ServiceLocator.
            </remarks>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CreateInstance(System.Type)">
            <summary>
            Creates an instance of the specified type using dependency injection.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CreateInstanceWithParameters(System.Type,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CreateInstanceWithParametersAndAutoCompletion(System.Type,System.Object[])">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            <para />
            This method will also auto-complete any additional dependencies that can be resolved from the <see cref="T:Catel.IoC.IServiceLocator"/>.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <param name="parameters">The parameters to inject.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CloseCurrentTypeIfRequired(Catel.IoC.TypeRequestInfo)">
            <summary>
            Marks the specified type as not being created. If this was the only type being constructed, the type request
            path will be closed.
            </summary>
            <param name="typeRequestInfoForTypeJustConstructed">The type request info for type just constructed.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CompleteTypeRequestPathIfRequired(Catel.IoC.TypeRequestInfo)">
            <summary>
            Completes the type request path by checking if the currently created type is the same as the first
            type meaning that the type is successfully created and the current type request path can be set to <c>null</c>.
            </summary>
            <param name="typeRequestInfoForTypeJustConstructed">The type request info.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.InitializeAfterConstruction(System.Object)">
            <summary>
            Initializes the created object after its construction.
            </summary>
            <param name="obj">The object to initialize.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CreateInstanceWithSpecifiedParameters(System.Type,System.Object[],System.Boolean,System.Boolean)">
            <summary>
            Creates an instance of the specified type using the specified parameters as injection values.
            </summary>
            <param name="typeToConstruct">The type to construct.</param>
            <param name="parameters">The parameters to inject.</param>
            <param name="autoCompleteDependencies">if set to <c>true</c>, the additional dependencies will be auto completed.</param>
            <param name="preventCircularDependencies">if set to <c>true</c>, prevent circular dependencies using the <see cref="T:Catel.IoC.TypeRequestPath"/>.</param>
            <returns>The instantiated type using dependency injection.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToConstruct" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeFactory.GetConstructorCache(System.Boolean)">
            <summary>
            Gets the constructor cache depending on whether the dependencies should be auto completed.
            </summary>
            <param name="autoCompleteDependencies">if set to <c>true</c>, the dependencies should be auto completed.</param>
            <returns>The correct dictionary.</returns>
        </member>
        <member name="M:Catel.IoC.TypeFactory.GetTypeMetaData(System.Type)">
            <summary>
            Gets the constructors metadata.
            </summary>
            <param name="type">The type.</param>
            <returns>The <see cref="T:Catel.IoC.TypeFactory.TypeMetaData"/>.</returns>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CanConstructorBeUsed(System.Reflection.ConstructorInfo,System.Boolean,System.Object[])">
            <summary>
            Determines whether the specified constructor can be used for dependency injection.
            </summary>
            <param name="constructor">The constructor.</param>
            <param name="autoCompleteDependencies">if set to <c>true</c>, additional dependencies can be completed from the <see cref="T:Catel.IoC.IServiceLocator"/>.</param>
            <param name="parameters">The parameters.</param>
            <returns><c>true</c> if this instance [can constructor be used] the specified constructor; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.TypeFactory.IsValidParameterValue(System.Type,System.Object)">
            <summary>
            Determines whether the specified parameter value can be used for the specified parameter type.
            </summary>
            <param name="parameterType">Type of the parameter.</param>
            <param name="parameterValue">The parameter value.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.TryCreateToConstruct(System.Type,System.Reflection.ConstructorInfo,System.Object[],System.Boolean,System.Boolean)">
            <summary>
            Tries to create the service with the specified constructor using the specified parameters.
            <para />
            This method will not throw an exception when the invocation fails.
            </summary>
            <param name="typeToConstruct">Type of the service.</param>
            <param name="constructor">The constructor info.</param>
            <param name="parameters">The parameters to pass into the constructor.</param>
            <param name="checkConstructor">if set to <c>true</c>, check whether the constructor can be used before using it.</param>
            <param name="hasMoreConstructorsLeft">if set to <c>true</c>, more constructors are left so don't throw exceptions.</param>
            <returns>The instantiated service or <c>null</c> if the instantiation fails.</returns>
            <remarks>Note that this method does not require an implementation of
            <see cref="T:Catel.IoC.TypeRequestPath" /> because this already has the parameter values
            and thus cannot lead to invalid circular dependencies.</remarks>
        </member>
        <member name="M:Catel.IoC.TypeFactory.ClearCache">
            <summary>
            Clears the cache of all constructors.
            <para />
            This call is normally not necessary since the type factory should keep an eye on the 
            <see cref="E:Catel.IoC.IServiceLocator.TypeRegistered"/> event to invalidate the cache.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeFactory.OnServiceLocatorTypeRegistered(System.Object,Catel.IoC.TypeRegisteredEventArgs)">
            <summary>
            Called when the <see cref="E:Catel.IoC.IServiceLocator.TypeRegistered"/> event occurs.
            </summary>
            <param name="sender">The sender.</param>
            <param name="eventArgs">The <see cref="T:Catel.IoC.TypeRegisteredEventArgs" /> instance containing the event data.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.OnAssemblyLoaded(System.Object,Catel.Reflection.AssemblyLoadedEventArgs)">
            <summary>
            Called when the <see cref="E:Catel.Reflection.TypeCache.AssemblyLoaded"/> event occurs.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:Catel.Reflection.AssemblyLoadedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.IoC.TypeFactory.CountSpecialObjects(System.Reflection.ConstructorInfo)">
            <summary>
            Gets the special objects count for the specific constructor.
            </summary>
            <param name="constructor">The constructor.</param>
            <returns>The number of special objects.</returns>
        </member>
        <member name="T:Catel.IoC.TypeRequestInfo">
            <summary>
            Request information about a type.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.#ctor(System.Type,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeRequestInfo"/> class.
            </summary>
            <param name="type">The type.</param>
            <param name="tag">The tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.IoC.TypeRequestInfo.Type">
            <summary>
            Gets the type.
            </summary>
            <value>The type.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestInfo.Tag">
            <summary>
            Gets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.op_Equality(Catel.IoC.TypeRequestInfo,Catel.IoC.TypeRequestInfo)">
            <summary>
            Implements the operator ==.
            </summary>
            <param name="firstObject">The first object.</param>
            <param name="secondObject">The second object.</param>
            <returns>The result of the operator.</returns>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.op_Inequality(Catel.IoC.TypeRequestInfo,Catel.IoC.TypeRequestInfo)">
            <summary>
            Implements the operator !=.
            </summary>
            <param name="firstObject">The first object.</param>
            <param name="secondObject">The second object.</param>
            <returns>The result of the operator.</returns>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />.</param>
            <returns><c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.</returns>
        </member>
        <member name="M:Catel.IoC.TypeRequestInfo.ToString">
            <summary>
            Converts the type to a string.
            </summary>
            <returns>The string.</returns>
        </member>
        <member name="T:Catel.IoC.TypeRequestPath">
            <summary>
            A list of types in which the types will be constructed when being resolved from the <see cref="T:Catel.IoC.ServiceLocator" />.
            </summary>
        </member>
        <member name="F:Catel.IoC.TypeRequestPath.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.#ctor(Catel.IoC.TypeRequestInfo,System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeRequestPath" /> class.
            </summary>
            <param name="typeRequestInfo">The type request info.</param>
            <param name="ignoreValueTypes">If set to <c>true</c>, this type path will ignore value types.</param>
            <param name="name">The name, can be <c>null</c>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeRequestInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.#ctor(Catel.IoC.TypeRequestInfo[],System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.IoC.TypeRequestPath" /> class.
            </summary>
            <param name="typeRequestInfos">The type requests already in the path.</param>
            <param name="ignoreValueTypes">If set to <c>true</c>, this type path will ignore value types.</param>
            <param name="name">The name, can be <c>null</c>.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="typeRequestInfos" /> is <c>null</c> or an empty array.</exception>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.Name">
            <summary>
            Gets the name.
            </summary>
            <value>The name.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.IgnoreValueTypes">
            <summary>
            Gets a value indicating whether value types should be ignored in the path.
            </summary>
            <value><c>true</c> if value types should be ignored; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.IgnoreDuplicateRequestsDirectlyAfterEachother">
            <summary>
            Gets or sets a value indicating whether duplicate requests directly after each other should be ignored.
            <para />
            The default value is <c>true</c>.
            </summary>
            <value><c>true</c> if duplicate requests directly after each other should be ignored; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.TypeCount">
            <summary>
            Gets the number of types in the type path.
            </summary>
            <value>The type count.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.AllTypes">
            <summary>
            Gets all types in the right order.
            </summary>
            <value>All types.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.FirstType">
            <summary>
            Gets the first type in the type path.
            </summary>
            <value>The first type.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.LastType">
            <summary>
            Gets the last type in the type path.
            </summary>
            <value>The last type.</value>
        </member>
        <member name="P:Catel.IoC.TypeRequestPath.IsValid">
            <summary>
            Gets a value indicating whether this path is valid, which means that the same type does not occur multiple times.
            </summary>
            <value><c>true</c> if this instance is valid; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>A <see cref="T:System.String" /> that represents this instance.</returns>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.MarkTypeAsNotCreated(Catel.IoC.TypeRequestInfo)">
            <summary>
            Marks the type as not created and removes all the history until this type from the request path.
            </summary>
            <param name="typeRequestInfo">The type request info.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeRequestInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.MarkTypeAsCreated(Catel.IoC.TypeRequestInfo)">
            <summary>
            Marks the type as created and removes all the history until this type from the request path.
            </summary>
            <param name="typeRequestInfo">The type request info.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeRequestInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.PopType">
            <summary>
            Pops the last added type from the type path.
            </summary>
            <exception cref="T:System.InvalidOperationException">The path reaches zero types which is not allowed.</exception>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.PushType(Catel.IoC.TypeRequestInfo,System.Boolean)">
            <summary>
            Pushes the type to the type path.
            </summary>
            <param name="typeRequestInfo">The type request info.</param>
            <param name="throwExceptionForDuplicateTypes">If set to <c>true</c>, this method will throw a <see cref="T:Catel.IoC.CircularDependencyException"/> for duplicate types.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeRequestInfo"/> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.CircularDependencyException">The type is already in the type path and <paramref name="throwExceptionForDuplicateTypes"/> is <c>true</c>.</exception>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.ThrowsExceptionIfInvalid">
            <summary>
            Throws the <see cref="T:Catel.IoC.CircularDependencyException"/> if the <see cref="P:Catel.IoC.TypeRequestPath.IsValid"/> is <c>false</c>.
            </summary>
        </member>
        <member name="M:Catel.IoC.TypeRequestPath.PushType(Catel.IoC.TypeRequestInfo,System.Boolean,System.Boolean)">
            <summary>
            Adds the type to the type path.
            </summary>
            <param name="typeRequestInfo">The type request info.</param>
            <param name="throwExceptionForDuplicateTypes">If set to <c>true</c>, this method will throw a <see cref="T:Catel.IoC.CircularDependencyException" /> for duplicate types.</param>
            <param name="ignoreValueTypes">If set to <c>true</c>, value types will be ignored.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeRequestInfo" /> is <c>null</c>.</exception>
            <exception cref="T:Catel.IoC.CircularDependencyException">The type is already in the type path and <paramref name="throwExceptionForDuplicateTypes" /> is <c>true</c>.</exception>
        </member>
        <member name="T:Catel.IO.StreamExtensions">
            <summary>
            Extensions for the <see cref="T:System.IO.Stream"/> class.
            </summary>
        </member>
        <member name="M:Catel.IO.StreamExtensions.ToByteArray(System.IO.Stream)">
            <summary>
            Converters the stream to a byte array.
            </summary>
            <param name="stream">The stream to convert to a byte array.</param>
            <returns>The byte array representing the stream.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.IO.StreamExtensions.GetUtf8String(System.IO.Stream)">
            <summary>
            Gets the UTF8 string from the stream.
            </summary>
            <param name="stream">The stream.</param>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.IO.StreamExtensions.GetString(System.IO.Stream,System.Text.Encoding)">
            <summary>
            Gets the string from the stream using the specified encoding.
            </summary>
            <param name="stream">The stream.</param>
            <param name="encoding">The encoding.</param>
            <returns>System.String.</returns>
        </member>
        <member name="T:Catel.IO.Path">
            <summary>
            Static class that implements some path methods
            </summary>
        </member>
        <member name="M:Catel.IO.Path.GetDirectoryName(System.String)">
            <summary>
            Gets the name of the directory.
            </summary>
            <param name="path">The path to get the directory name from.</param>
            <returns>The directory name.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="path"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.GetFileName(System.String)">
            <summary>
            Gets the name of the file.
            </summary>
            <param name="path">The path to get the file name from.</param>
            <returns>The file name.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="path"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.GetParentDirectory(System.String)">
            <summary>
            Gets the parent directory.
            </summary>
            <param name="path">The path to get the parent directory from.</param>
            <returns>Parent directory of a path. If there is no parent directory, <see cref="F:System.String.Empty"/> is returned.</returns>
            <remarks>
            This method will always strip the trailing backslash from the parent.
            </remarks>
        </member>
        <member name="M:Catel.IO.Path.GetRelativePath(System.String,System.String)">
            <summary>
            Returns a relative path string from a full path.
            <para />
            The path to convert. Can be either a file or a directory
            The base path to truncate to and replace
            <para />
            Lower case string of the relative path. If path is a directory it's returned 
            without a backslash at the end.
            <para />
            Examples of returned values:
             .\test.txt, ..\test.txt, ..\..\..\test.txt, ., ..
            </summary>
            <param name="fullPath">Full path to convert to relative path.</param>
            <param name="basePath">The base path (a.k.a. working directory). If this parameter is <c>null</c> or empty, the current working directory will be used.</param>
            <returns>Relative path.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullPath"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.AppendTrailingSlash(System.String)">
            <summary>
            Appends a trailing backslash (\) to the path.
            </summary>
            <param name="path">Path to append the trailing backslash to.</param>
            <returns>Path including the trailing backslash.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="path"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.AppendTrailingSlash(System.String,System.Char)">
            <summary>
            Appends a trailing slash (\ or /) to the path.
            </summary>
            <param name="path">Path to append the trailing slash to.</param>
            <param name="slash">Slash to append (\ or /).</param>
            <returns>Path including the trailing slash.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="path"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.Combine(System.String[])">
            <summary>
            Returns a combination of multiple paths.
            </summary>
            <param name="paths">Paths to combine.</param>
            <returns>Combination of all the paths passed.</returns>
        </member>
        <member name="M:Catel.IO.Path.CombineUrls(System.String[])">
            <summary>
            Returns a combination of multiple urls.
            </summary>
            <param name="urls">Urls to combine.</param>
            <returns>Combination of all the urls passed.</returns>
        </member>
        <member name="M:Catel.IO.Path.ReplacePathSlashesByUrlSlashes(System.String)">
            <summary>
            Replaces path slashes (\) by url slashes (/).
            </summary>
            <param name="value">Value to convert.</param>
            <returns>Prepared url.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.RemoveStartSlashes(System.String)">
            <summary>
            Removes any slashes (\ or /) at the beginning of the string.
            </summary>
            <param name="value">Value to remove the slashes from.</param>
            <returns>Value without slashes.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.RemoveTrailingSlashes(System.String)">
            <summary>
            Removes any slashes (\ or /) at the end of the string.
            </summary>
            <param name="value">Value to remove the slashes from.</param>
            <returns>Value without slashes.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.IO.Path.RemoveStartAndTrailingSlashes(System.String)">
            <summary>
            Removes any slashes (\ or /) at the beginning and end of the string.
            </summary>
            <param name="value">Value to remove the slashes from.</param>
            <returns>Value without trailing slashes.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="value"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Linq.ExpressionUtil">
            <summary>
            General purpose Expression utilities
            </summary>
            <remarks>
            Code originally found at http://www.yoda.arachsys.com/csharp/miscutil/.
            </remarks>
        </member>
        <member name="M:Catel.Linq.ExpressionUtil.CreateExpression``2(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.UnaryExpression})">
            <summary>
            Create a function delegate representing a unary operation
            </summary>
            <typeparam name="TArg1">The parameter type</typeparam>
            <typeparam name="TResult">The return type</typeparam>
            <param name="body">Body factory</param>
            <returns>Compiled function delegate</returns>
        </member>
        <member name="M:Catel.Linq.ExpressionUtil.CreateExpression``3(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.BinaryExpression})">
            <summary>
            Create a function delegate representing a binary operation
            </summary>
            <typeparam name="TArg1">The first parameter type</typeparam>
            <typeparam name="TArg2">The second parameter type</typeparam>
            <typeparam name="TResult">The return type</typeparam>
            <param name="body">Body factory</param>
            <returns>Compiled function delegate</returns>
        </member>
        <member name="M:Catel.Linq.ExpressionUtil.CreateExpression``3(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.BinaryExpression},System.Boolean)">
            <summary>
            Create a function delegate representing a binary operation
            </summary>
            <param name="castArgsToResultOnFailure">
            If no matching operation is possible, attempt to convert
            TArg1 and TArg2 to TResult for a match? For example, there is no
            "decimal operator /(decimal, int)", but by converting TArg2 (int) to
            TResult (decimal) a match is found.
            </param>
            <typeparam name="TArg1">The first parameter type</typeparam>
            <typeparam name="TArg2">The second parameter type</typeparam>
            <typeparam name="TResult">The return type</typeparam>
            <param name="body">Body factory</param>
            <returns>Compiled function delegate</returns>
        </member>
        <member name="T:Catel.Logging.BatchLogListenerBase">
            <summary>
            Base class for log listeners that can write in batches.
            </summary>
        </member>
        <member name="M:Catel.Logging.BatchLogListenerBase.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.BatchLogListenerBase" /> class.
            </summary>
            <param name="maxBatchCount">The maximum batch count.</param>
        </member>
        <member name="P:Catel.Logging.BatchLogListenerBase.MaximumBatchCount">
            <summary>
            Gets the maximum batch count.
            </summary>
            <value>
            The maximum batch count.
            </value>
        </member>
        <member name="M:Catel.Logging.BatchLogListenerBase.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.BatchLogListenerBase.Flush">
            <summary>
            Flushes the current queue asynchronous.
            </summary>
            <returns>Task so it can be awaited.</returns>
        </member>
        <member name="M:Catel.Logging.BatchLogListenerBase.WriteBatch(System.Collections.Generic.List{Catel.Logging.LogBatchEntry})">
            <summary>
            Writes the batch of entries.
            </summary>
            <param name="batchEntries">The batch entries.</param>
            <returns>Task so this can be done asynchronously.</returns>
        </member>
        <member name="T:Catel.Logging.LogMessageEventArgs">
            <summary>
              Event args containing information about a message that has been written to a log.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogMessageEventArgs.#ctor(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,Catel.Logging.LogEvent)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogMessageEventArgs" /> class.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="logEvent">The log event.</param>
        </member>
        <member name="M:Catel.Logging.LogMessageEventArgs.#ctor(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,Catel.Logging.LogEvent,System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogMessageEventArgs" /> class.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="logEvent">The log event.</param>
            <param name="time">The time.</param>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.Log">
            <summary>
              Gets the log the message was written to.
            </summary>
            <value>The log.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.Tag">
            <summary>
            Gets the tag, which is automatically retrieved via the <see cref="T:Catel.Logging.ILog"/>.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.Message">
            <summary>
              Gets the message that was written to the log.
            </summary>
            <value>The message.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.ExtraData">
            <summary>
            Gets the extra data.
            </summary>
            <value>The extra data.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.LogData">
            <summary>
            Gets the log data attached to this log entry.
            </summary>
            <value>The data.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.LogEvent">
            <summary>
              Gets the log event.
            </summary>
            <value>The log event.</value>
        </member>
        <member name="P:Catel.Logging.LogMessageEventArgs.Time">
            <summary>
            Gets the time at which the message was written to the log.
            </summary>
            <value>The time.</value>
        </member>
        <member name="T:Catel.Logging.IBatchLogListenerExtensions">
            <summary>
            IBatchLogListener extensions.
            </summary>
        </member>
        <member name="M:Catel.Logging.IBatchLogListenerExtensions.FlushAsync(Catel.Logging.IBatchLogListener)">
            <summary>
            Flushes the current queue asynchronous.
            </summary>
            <returns>Task so it can be awaited.</returns>
        </member>
        <member name="T:Catel.Logging.LogExtensions">
            <summary>
            Extensions to the <see cref="T:Catel.Logging.ILog" /> interface.
            </summary>
            <summary>
            Extensions to the <see cref="T:Catel.Logging.ILog" /> interface.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogProductInfo(Catel.Logging.ILog)">
            <summary>
            Logs the product info with version information.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogDeviceInfo(Catel.Logging.ILog)">
            <summary>
            Logs the device info.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Write(Catel.Logging.ILog,Catel.Logging.LogEvent,System.String,System.Object[])">
            <summary>
            Writes the specified message as the specified log event.
            </summary>
            <param name="log">The log.</param>
            <param name="logEvent">The log event.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Write(Catel.Logging.ILog,Catel.Logging.LogEvent,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as the specified log event.
            </summary>
            <param name="log">The log.</param>
            <param name="logEvent">The log event.</param>
            <param name="exception">The exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.WriteWithData(Catel.Logging.ILog,System.Exception,System.String,System.Object,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorAndCreateException``1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as error message and then throws the specified exception.
            <para/>
            The specified exception must have a constructor that accepts a single string as message.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <example>
              <code>
            This example logs an error and immediately throws the exception:<para/>
              <![CDATA[
            throw Log.ErrorAndCreateException<NotSupportedException>("This action is not supported");
            ]]>
              </code>
              </example>
            <exception cref="T:System.ArgumentNullException">The <paramref name="log"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <typeparamref name="TException"/> does not have a constructor accepting a string.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorAndCreateException``1(Catel.Logging.ILog,System.Func{System.String,``0},System.String,System.Object[])">
            <summary>
            Writes the specified message as error message and then throws the specified exception.
            <para />
            The specified exception must have a constructor that accepts a single string as message.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="log">The log.</param>
            <param name="createExceptionCallback">The create exception callback.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>Exception.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="log" /> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <typeparamref name="TException" /> does not have a constructor accepting a string.</exception>
            <example>
              <code>
            This example logs an error and immediately throws the exception:<para /><![CDATA[
            throw Log.ErrorAndCreateException<NotSupportedException>("This action is not supported");
            ]]></code>
            </example>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorAndCreateException``1(Catel.Logging.ILog,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as error message and then throws the specified exception.
            <para />
            The specified exception must have a constructor that accepts a single string as message.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="log">The log.</param>
            <param name="innerException">The inner exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>Exception.</returns>
            <exception cref="T:System.NotSupportedException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="log" /> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <typeparamref name="TException" /> does not have a constructor accepting a string.</exception>
            <example>
              <code>
            This example logs an error and immediately throws the exception:<para /><![CDATA[
            throw Log.ErrorAndCreateException<NotSupportedException>("This action is not supported");
            ]]></code>
            </example>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorAndCreateException``1(Catel.Logging.ILog,System.Exception,System.Func{System.String,``0},System.String,System.Object[])">
            <summary>
            Writes the specified message as error message and then throws the specified exception.
            <para />
            The specified exception must have a constructor that accepts a single string as message.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="log">The log.</param>
            <param name="innerException">The inner exception.</param>
            <param name="createExceptionCallback">The create exception callback.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <returns>Exception.</returns>
            <exception cref="T:System.NotSupportedException"></exception>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="log" /> is <c>null</c>.</exception>
            <example>
              <code>
            This example logs an error and immediately throws the exception:<para /><![CDATA[
            throw Log.ErrorAndCreateException<NotSupportedException>("This action is not supported");
            ]]></code>
            </example>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorAndThrowException``1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as error message and then throws the specified exception.
            <para/>
            The specified exception must have a constructor that accepts a single string as message.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The args.</param>
            <example>
              <code>
            This example logs an error and immediately throws the exception:<para/>
              <![CDATA[
            Log.ErrorAndThrowException<NotSupportedException>("This action is not supported");
            ]]>
              </code>
              </example>
            <exception cref="T:System.ArgumentNullException">The <paramref name="log"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <typeparamref name="TException"/> does not have a constructor accepting a string.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.FormatException(System.Exception,System.String)">
            <summary>
            Formats the exception for logging with an additional message.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <returns>Formatted string.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Debug(Catel.Logging.ILog)">
            <summary>
            Writes an empty line as debug message.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Debug(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Debug(Catel.Logging.ILog,System.Exception)">
            <summary>
            Writes the specified message as debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Debug(Catel.Logging.ILog,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.DebugWithData(Catel.Logging.ILog,System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.DebugWithData(Catel.Logging.ILog,System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as debug message with log data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.DebugWithData(Catel.Logging.ILog,System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Error(Catel.Logging.ILog)">
            <summary>
            Writes an empty line as error message.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Error(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as error message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Error(Catel.Logging.ILog,System.Exception)">
            <summary>
            Writes the specified message as error message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Error(Catel.Logging.ILog,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as error message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorWithData(Catel.Logging.ILog,System.String,System.Object)">
            <summary>
            Writes the specified message as error message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorWithData(Catel.Logging.ILog,System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as error message with log data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.ErrorWithData(Catel.Logging.ILog,System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as error message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogDebugHeading1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogDebugHeading2(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogDebugHeading3(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogDebugHeading(Catel.Logging.ILog,System.String,System.String,System.Object[])">
            <summary>
            Logs a heading as a debug message.
            </summary>
            <param name="log">The log.</param>
            <param name="headingContent">Content of the heading.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogInfoHeading1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a info message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogInfoHeading2(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a info message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogInfoHeading3(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a info message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogInfoHeading(Catel.Logging.ILog,System.String,System.String,System.Object[])">
            <summary>
            Logs a heading as a info message.
            </summary>
            <param name="log">The log.</param>
            <param name="headingContent">Content of the heading.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogWarningHeading1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogWarningHeading2(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogWarningHeading3(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogWarningHeading(Catel.Logging.ILog,System.String,System.String,System.Object[])">
            <summary>
            Logs a heading as a warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="headingContent">Content of the heading.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogErrorHeading1(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a error message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogErrorHeading2(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a error message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogErrorHeading3(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Logs a heading as a error message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogErrorHeading(Catel.Logging.ILog,System.String,System.String,System.Object[])">
            <summary>
            Logs a heading as a error message.
            </summary>
            <param name="log">The log.</param>
            <param name="headingContent">Content of the heading.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.LogHeading(Catel.Logging.ILog,Catel.Logging.LogEvent,System.String,System.String,System.Object[])">
            <summary>
            Logs a heading.
            </summary>
            <param name="log">The log.</param>
            <param name="logEvent">The log event.</param>
            <param name="headingContent">Content of the heading.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Warning(Catel.Logging.ILog)">
            <summary>
            Writes an empty line as warning message.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Warning(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Warning(Catel.Logging.ILog,System.Exception)">
            <summary>
            Writes the specified message as warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Warning(Catel.Logging.ILog,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as warning message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.WarningWithData(Catel.Logging.ILog,System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.WarningWithData(Catel.Logging.ILog,System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as warning message with log data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.WarningWithData(Catel.Logging.ILog,System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Info(Catel.Logging.ILog)">
            <summary>
            Writes an empty line as info message.
            </summary>
            <param name="log">The log.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Info(Catel.Logging.ILog,System.String,System.Object[])">
            <summary>
            Writes the specified message as info message.
            </summary>
            <param name="log">The log.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Info(Catel.Logging.ILog,System.Exception)">
            <summary>
            Writes the specified message as info message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.Info(Catel.Logging.ILog,System.Exception,System.String,System.Object[])">
            <summary>
            Writes the specified message as info message.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="messageFormat">The message format.</param>
            <param name="args">The formatting arguments.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogExtensions.InfoWithData(Catel.Logging.ILog,System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.InfoWithData(Catel.Logging.ILog,System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as info message with log data.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.LogExtensions.InfoWithData(Catel.Logging.ILog,System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="log">The log.</param>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Logging.IBatchLogListener">
            <summary>
            Log listener base which allows to write log files in batches.
            </summary>
        </member>
        <member name="M:Catel.Logging.IBatchLogListener.Flush">
            <summary>
            Flushes the current queue asynchronous.
            </summary>
            <returns>Task so it can be awaited.</returns>
        </member>
        <member name="T:Catel.Logging.ILog">
            <summary>
            Log interface.
            </summary>
        </member>
        <member name="P:Catel.Logging.ILog.TargetType">
            <summary>
            Gets the target type of the log. This is the type where the log is created for.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="P:Catel.Logging.ILog.Tag">
            <summary>
            Gets or sets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.Logging.ILog.IsCatelLogging">
            <summary>
            Gets a value indicating whether this logger is a Catel logger.
            <para />
            This value can be useful to exclude Catel logging for external listeners.
            </summary>
            <value>
            	<c>true</c> if this instance is a Catel logger; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.ILog.IndentSize">
            <summary>
            Gets or sets the size of the indent.
            <para />
            The default value is <c>2</c>.
            </summary>
            <value>
            The size of the indent.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is negative.</exception>
        </member>
        <member name="P:Catel.Logging.ILog.IndentLevel">
            <summary>
            Gets or sets the indent level.
            </summary>
            <value>
            The size of the indent. The default value is <c>0</c>.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">The <c>value</c> is negative.</exception>
        </member>
        <member name="E:Catel.Logging.ILog.LogMessage">
            <summary>
              Occurs when a message is written to the log.
            </summary>
        </member>
        <member name="M:Catel.Logging.ILog.DebugWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.DebugWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.DebugWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.InfoWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.InfoWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.InfoWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WarningWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WarningWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WarningWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.ErrorWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.ErrorWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.ErrorWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WriteWithData(System.String,System.Object,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WriteWithData(System.String,Catel.Logging.LogData,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <param name="logEvent">The log event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.WriteWithData(System.Exception,System.String,System.Object,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.ILog.Indent">
            <summary>
            Increases the <see cref="P:Catel.Logging.ILog.IndentLevel"/> by <c>1</c>.
            </summary>
        </member>
        <member name="M:Catel.Logging.ILog.Unindent">
            <summary>
            Decreases the <see cref="P:Catel.Logging.ILog.IndentLevel"/> by <c>1</c>.
            </summary>
        </member>
        <member name="T:Catel.Logging.ILogListener">
            <summary>
            Interface allowing external subscribers for the logging.
            </summary>
        </member>
        <member name="P:Catel.Logging.ILogListener.IgnoreCatelLogging">
            <summary>
            Gets or sets a value indicating whether to ignore Catel logging.
            </summary>
            <value><c>true</c> if Catel logging should be ignored; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.ILogListener.IsDebugEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in debug messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            	<c>true</c> if this listener is interested in debug messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.ILogListener.IsInfoEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in info messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            	<c>true</c> if this listener is interested in info messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.ILogListener.IsWarningEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in warning messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            	<c>true</c> if this listener is interested in warning messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.ILogListener.IsErrorEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in error messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            	<c>true</c> if this listener is interested in error messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.ILogListener.TimeDisplay">
            <summary>
            Gets or sets a value indicating what format of time to use.
            <para />
            This default value is <c>Time</c>.
            </summary>
        </member>
        <member name="E:Catel.Logging.ILogListener.LogMessage">
            <summary>
            Occurs when a log message is written to one of the logs.
            </summary>
        </member>
        <member name="M:Catel.Logging.ILogListener.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Debug(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Debug(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Info(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Info(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Warning(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Warning(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Error(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.ILogListener.Error(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="T:Catel.Logging.ConsoleLogListener">
            <summary>
            Log listener that writes to the console.
            </summary>
        </member>
        <member name="M:Catel.Logging.ConsoleLogListener.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="T:Catel.Logging.DebugLogListener">
            <summary>
              Implementation of the <see cref = "T:Catel.Logging.ILogListener" /> that writes code to the debug or output window.
            </summary>
        </member>
        <member name="M:Catel.Logging.DebugLogListener.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="T:Catel.Logging.RollingInMemoryLogListener">
            <summary>
            In memory log listener that keeps track of the latest log messages.
            </summary>
        </member>
        <member name="M:Catel.Logging.RollingInMemoryLogListener.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.RollingInMemoryLogListener"/> class.
            </summary>
        </member>
        <member name="P:Catel.Logging.RollingInMemoryLogListener.MaximumNumberOfLogEntries">
            <summary>
            Gets or sets the maximum number of log entries to keep.
            <para />
            The default value is 250.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Logging.RollingInMemoryLogListener.MaximumNumberOfWarningLogEntries">
            <summary>
            Gets or sets the maximum number of warning log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Logging.RollingInMemoryLogListener.MaximumNumberOfErrorLogEntries">
            <summary>
            Gets or sets the maximum number of error log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="M:Catel.Logging.RollingInMemoryLogListener.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.RollingInMemoryLogListener.GetLogEntries">
            <summary>
            Gets the log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Logging.RollingInMemoryLogListener.GetWarningLogEntries">
            <summary>
            Gets the warning log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Logging.RollingInMemoryLogListener.GetErrorLogEntries">
            <summary>
            Gets the error log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="T:Catel.Logging.Log">
            <summary>
              Default logging class that writes to the console or output window.
            </summary>
        </member>
        <member name="M:Catel.Logging.Log.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.Log"/> class.
            </summary>
            <param name="targetType">The type for which this log is intented.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="targetType"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Logging.Log.TargetType">
            <summary>
            Gets the target type of the log. This is the type where the log is created for.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="P:Catel.Logging.Log.Tag">
            <summary>
            Gets or sets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="P:Catel.Logging.Log.IsCatelLogging">
            <summary>
            Gets a value indicating whether this logger is a Catel logger.
            <para />
            This value can be useful to exclude Catel logging for external listeners.
            </summary>
            <value>
            	<c>true</c> if this instance is a Catel logger; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.Log.IndentSize">
            <summary>
            Gets or sets the size of the indent.
            <para />
            The default value is <c>2</c>.
            </summary>
            <value>
            The size of the indent.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is negative.</exception>
        </member>
        <member name="P:Catel.Logging.Log.IndentLevel">
            <summary>
            Gets or sets the indent level.
            <para />
            The default value is <c>0</c>.
            </summary>
            <value>
            The size of the indent.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">The <c>value</c> is negative.</exception>
        </member>
        <member name="E:Catel.Logging.Log.LogMessage">
            <summary>
              Occurs when a message is written to the log.
            </summary>
        </member>
        <member name="M:Catel.Logging.Log.DebugWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.Log.DebugWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as debug message with log data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.Log.DebugWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as debug message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.Log.InfoWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.Log.InfoWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as info message with log data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.Log.InfoWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as info message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.Log.WarningWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.Log.WarningWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as warning message with log data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.Log.WarningWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as warning message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.Log.ErrorWithData(System.String,System.Object)">
            <summary>
            Writes the specified message as error message with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
        </member>
        <member name="M:Catel.Logging.Log.ErrorWithData(System.String,Catel.Logging.LogData)">
            <summary>
            Writes the specified message as error message with log data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
        </member>
        <member name="M:Catel.Logging.Log.ErrorWithData(System.Exception,System.String,System.Object)">
            <summary>
            Writes the specified message as error message with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.Log.WriteWithData(System.String,System.Object,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
        </member>
        <member name="M:Catel.Logging.Log.WriteWithData(System.String,Catel.Logging.LogData,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as error message with log data.
            </summary>
            <param name="message">The message.</param>
            <param name="logData">The log data.</param>
            <param name="logEvent">The log event.</param>
        </member>
        <member name="M:Catel.Logging.Log.WriteWithData(System.Exception,System.String,System.Object,Catel.Logging.LogEvent)">
            <summary>
            Writes the specified message as specified log event with extra data.
            </summary>
            <param name="exception">The exception.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.Log.WriteMessage(System.String,System.Object,Catel.Logging.LogData,Catel.Logging.LogEvent)">
            <summary>
            Raises the <see cref="E:Catel.Logging.Log.LogMessage" /> event.
            </summary>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="logEvent">The log event.</param>
        </member>
        <member name="M:Catel.Logging.Log.Indent">
            <summary>
            Increases the <see cref="P:Catel.Logging.Log.IndentLevel"/> by <c>1</c>.
            </summary>
        </member>
        <member name="M:Catel.Logging.Log.Unindent">
            <summary>
            Decreases the <see cref="P:Catel.Logging.Log.IndentLevel"/> by <c>1</c>.
            </summary>
        </member>
        <member name="T:Catel.Logging.LogBatchEntry">
            <summary>
            Represents a log entry inside a batch.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogBatchEntry.#ctor(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogBatchEntry" /> class.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="T:Catel.Logging.LogData">
            <summary>
            Class containing log data.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogData.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogData"/> class.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogData"/> class.
            </summary>
            <param name="values">The values.</param>
        </member>
        <member name="T:Catel.Logging.LogEntry">
            <summary>
            Log entry class.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogEntry.#ctor(Catel.Logging.LogMessageEventArgs)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogEntry" /> class.
            </summary>
            <param name="eventArgs">The event args.</param>
        </member>
        <member name="M:Catel.Logging.LogEntry.#ctor(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogEntry" /> class.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="P:Catel.Logging.LogEntry.Time">
            <summary>
            Gets the time.
            </summary>
            <value>The time.</value>
        </member>
        <member name="P:Catel.Logging.LogEntry.ExtraData">
            <summary>
            Gets the extra data.
            </summary>
            <value>
            The extra data.
            </value>
        </member>
        <member name="P:Catel.Logging.LogEntry.Log">
            <summary>
            Gets the log.
            </summary>
            <value>
            The log.
            </value>
        </member>
        <member name="P:Catel.Logging.LogEntry.LogEvent">
            <summary>
            Gets the log event.
            </summary>
            <value>
            The log event.
            </value>
        </member>
        <member name="P:Catel.Logging.LogEntry.Message">
            <summary>
            Gets the message.
            </summary>
            <value>
            The message.
            </value>
        </member>
        <member name="P:Catel.Logging.LogEntry.Data">
            <summary>
            Gets the log data attached to this log entry.
            </summary>
            <value>The data.</value>
        </member>
        <member name="T:Catel.Logging.LogEvent">
            <summary>
              Different types of logging events.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogEvent.Debug">
            <summary>
              Debug message.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogEvent.Info">
            <summary>
              Info message.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogEvent.Warning">
            <summary>
              Warning message.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogEvent.Error">
            <summary>
              Error message.
            </summary>
        </member>
        <member name="T:Catel.Logging.LogListenerBase">
            <summary>
            Abstract base class that implements the <see cref="T:Catel.Logging.ILogListener"/> interface.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogListenerBase.LogEventStrings">
            <summary>
            The log event strings.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Logging.LogListenerBase"/> class.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Logging.LogListenerBase"/> class.
            </summary>
            <param name="ignoreCatelLogging">if set to <c>true</c>, the internal logging of Catel will be ignored.</param>
        </member>
        <member name="E:Catel.Logging.LogListenerBase.LogMessage">
            <summary>
            Occurs when a log message is written to one of the logs.
            </summary>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.IgnoreCatelLogging">
            <summary>
            Gets or sets a value indicating whether to ignore Catel logging.
            </summary>
            <value><c>true</c> if Catel logging should be ignored; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.IsDebugEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in debug messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            <c>true</c> if this listener is interested in debug messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.IsInfoEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in info messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            <c>true</c> if this listener is interested in info messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.IsWarningEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in warning messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            <c>true</c> if this listener is interested in warning messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.IsErrorEnabled">
            <summary>
            Gets or sets a value indicating whether this listener is interested in error messages.
            <para />
            This default value is <c>true</c>.
            </summary>
            <value>
            <c>true</c> if this listener is interested in error messages; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogListenerBase.TimeDisplay">
            <summary>
            Gets or sets a value indicating what format of time to use.
            <para />
            This default value is <c>Time</c>.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Debug(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Debug(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Info(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Info(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Warning(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Warning(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Error(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Catel#Logging#ILogListener#Error(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The ti me.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.ShouldIgnoreLogMessage(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Returns whether the log message should be ignored
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="time">The time.</param>
            <returns><c>true</c> if the message should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.ShouldIgnoreLogMessage(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Returns whether the log message should be ignored
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
            <returns><c>true</c> if the message should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.RaiseLogMessage(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Raises the <see cref="E:Catel.Logging.LogListenerBase.LogMessage" /> event.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The extra data.</param>
            <param name="logEvent">The log event.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.RaiseLogMessage(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Raises the <see cref="E:Catel.Logging.LogListenerBase.LogMessage" /> event.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.FormatLogEvent(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Formats the log event to a message which can be written to a log persistence storage.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="time">The time.</param>
            <returns>The formatted log event.</returns>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.FormatLogEvent(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Formats the log event to a message which can be written to a log persistence storage.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The extra data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
            <returns>The formatted log event.</returns>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Write(Catel.Logging.ILog,System.String,Catel.Logging.LogEvent,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when any message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="logEvent">The log event.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Debug(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Debug(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Debug" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Info(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Info(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Info" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Warning(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Warning(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Warning" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Error(Catel.Logging.ILog,System.String,System.Object,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="M:Catel.Logging.LogListenerBase.Error(Catel.Logging.ILog,System.String,System.Object,Catel.Logging.LogData,System.DateTime)">
            <summary>
            Called when a <see cref="F:Catel.Logging.LogEvent.Error" /> message is written to the log.
            </summary>
            <param name="log">The log.</param>
            <param name="message">The message.</param>
            <param name="extraData">The additional data.</param>
            <param name="logData">The log data.</param>
            <param name="time">The time.</param>
        </member>
        <member name="T:Catel.Logging.LogManager">
            <summary>
            Log manager that allows external libraries to subscribe to logging of Catel.
            <para />
            The manager automatically adds an instance of the <see cref="T:Catel.Logging.DebugLogListener"/> to
            the list of listeners so the tracing is available in debug mode. To remove this listener,
            call <see cref="M:Catel.Logging.LogManager.ClearListeners"/> before doing any initialization.
            </summary>
        </member>
        <member name="T:Catel.Logging.LogManager.LogInfo">
            <summary>
            Class containing log info.
            </summary>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IsEnabled">
            <summary>
            Gets a value indicating whether any logging is enabled, which means there is at least one listener.
            </summary>
            <value>
            <c>true</c> if this instance is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IgnoreCatelLogging">
            <summary>
            Gets a value indicating whether Catel logging should be ignored. This means that all log listeners are ignoring
            Catel logging.
            </summary>
            <value>
            <c>true</c> if Catel logging is ignored; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IsDebugEnabled">
            <summary>
            Gets a value indicating whether debug logging is enabled. This means that there is at least one listener 
            that is interested in debug logging.
            </summary>
            <value>
            <c>true</c> if debug logging is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IsInfoEnabled">
            <summary>
            Gets a value indicating whether info logging is enabled. This means that there is at least one listener 
            that is interested in info logging.
            </summary>
            <value>
            <c>true</c> if info logging is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IsWarningEnabled">
            <summary>
            Gets a value indicating whether warning logging is enabled. This means that there is at least one listener 
            that is interested in warning logging.
            </summary>
            <value>
            <c>true</c> if warning logging is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.Logging.LogManager.LogInfo.IsErrorEnabled">
            <summary>
            Gets a value indicating whether error logging is enabled. This means that there is at least one listener 
            that is interested in error logging.
            </summary>
            <value>
            <c>true</c> if error logging is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Catel.Logging.LogManager.LogInfo.UpdateLogInfo">
            <summary>
            Updates the log info.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogManager.LogInfo.IsLogEventEnabled(Catel.Logging.LogEvent)">
            <summary>
            Determines whether the specified log event is enabled.
            </summary>
            <param name="logEvent">The log event.</param>
            <returns><c>true</c> if the specified log event is enabled; otherwise, <c>false</c>.</returns>
        </member>
        <member name="F:Catel.Logging.LogManager._logListeners">
            <summary>
            List of all registered <see cref="T:Catel.Logging.ILogListener"/> instances.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogManager._loggers">
            <summary>
            Dictionary containing the logs per type.
            </summary>
        </member>
        <member name="F:Catel.Logging.LogManager.Log">
            <summary>
            Logging of the class. Must be declared after the log listeners and loggers.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogManager.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Logging.LogManager" /> class.
            </summary>
        </member>
        <member name="P:Catel.Logging.LogManager.IgnoreCatelLogging">
            <summary>
            Gets a value indicating whether the global IgnoreCatelLogging should be overriden.
            <para />
            Note that this value will override all settings of each listener globally. If this value is
            set to <c>null</c>, nothing will be overriden.
            </summary>
            <value><c>true</c> if Catel logging must be ignored for all log listeners; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.LogManager.IsDebugEnabled">
            <summary>
            Gets a value indicating whether the global IsDebugEnabled should be overriden.
            <para />
            Note that this value will override all settings of each listener globally. If this value is
            set to <c>null</c>, nothing will be overriden.
            </summary>
            <value><c>true</c> if debug logging must be enabled for all log listeners; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.LogManager.IsInfoEnabled">
            <summary>
            Gets a value indicating whether the global IsInfoEnabled should be overriden.
            <para />
            Note that this value will override all settings of each listener globally. If this value is
            set to <c>null</c>, nothing will be overriden.
            </summary>
            <value><c>true</c> if info logging must be enabled for all log listeners; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.LogManager.IsWarningEnabled">
            <summary>
            Gets a value indicating whether the global IsWarningEnabled should be overriden.
            <para />
            Note that this value will override all settings of each listener globally. If this value is
            set to <c>null</c>, nothing will be overriden.
            </summary>
            <value><c>true</c> if warning logging must be enabled for all log listeners; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Logging.LogManager.IsErrorEnabled">
            <summary>
            Gets a value indicating whether the global IsErrorEnabled should be overriden.
            <para />
            Note that this value will override all settings of each listener globally. If this value is
            set to <c>null</c>, nothing will be overriden.
            </summary>
            <value><c>true</c> if error logging must be enabled for all log listeners; otherwise, <c>false</c>.</value>
        </member>
        <member name="E:Catel.Logging.LogManager.LogMessage">
            <summary>
            Occurs when a log message is written to one of the logs.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogManager.GetCurrentClassLogger">
            <summary>
            Gets the current class logger.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Catel.Logging.LogManager.AddDebugListener(System.Boolean)">
            <summary>
            Registers the default debug listener. Starting with Catel 2.4, the debug listener is no longer
            attached for performance reasons. To register the debug listener, call this method.
            <para />
            When an instance of the <see cref="T:Catel.Logging.DebugLogListener"/> is already registered, the existing instance
            is returned.
            </summary>
            <returns>The newly created or existing <see cref="T:Catel.Logging.DebugLogListener"/>.</returns>
        </member>
        <member name="M:Catel.Logging.LogManager.GetLogger(System.Type)">
            <summary>
            Gets the logger for the specified type.
            </summary>
            <param name="type">The type.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogManager.FlushAll">
            <summary>
            Flushes all listeners that implement the <see cref="T:Catel.Logging.IBatchLogListener" /> by calling <see cref="M:Catel.Logging.IBatchLogListener.Flush" />.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogManager.FlushAllAsync">
            <summary>
            Flushes all listeners that implement the <see cref="T:Catel.Logging.IBatchLogListener" /> by calling <see cref="M:Catel.Logging.IBatchLogListener.Flush" />.
            </summary>
            <returns>Task so it can be awaited.</returns>
        </member>
        <member name="M:Catel.Logging.LogManager.GetListeners">
            <summary>
            Gets all the currently registered log listeners.
            </summary>
            <returns>An enumerable of all listeners.</returns>
        </member>
        <member name="M:Catel.Logging.LogManager.AddListener(Catel.Logging.ILogListener)">
            <summary>
            Adds a log listener which will receive all log events.
            <para />
            This method does not check whether the <paramref name="listener"/> is already added to the list
            of registered listeners.
            </summary>
            <param name="listener">The listener.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogManager.RemoveListener(Catel.Logging.ILogListener)">
            <summary>
            Removes the a log listener which will stop receiving all log events.
            </summary>
            <param name="listener">The listener.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogManager.IsListenerRegistered(Catel.Logging.ILogListener)">
            <summary>
            Determines whether the specified listener is already registered or not.
            </summary>
            <param name="listener">The listener.</param>
            <returns>
            	<c>true</c> if the specified listener is already registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Logging.LogManager.ClearListeners">
            <summary>
            Clears all the current listeners.
            </summary>
        </member>
        <member name="M:Catel.Logging.LogManager.GetThreadSafeLogListeners">
            <summary>
            Gets the current log listeners in a thread-safe manner.
            </summary>
            <returns>List&lt;ILogListener&gt;.</returns>
        </member>
        <member name="M:Catel.Logging.LogManager.OnLogMessage(System.Object,Catel.Logging.LogMessageEventArgs)">
            <summary>
            Called when one of the logs has written a log message.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:Catel.Logging.LogMessageEventArgs"/> instance containing the event data.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <see cref="T:Catel.Logging.LogEvent"/> is not supported.</exception>
        </member>
        <member name="M:Catel.Logging.LogManager.IsListenerInterested(Catel.Logging.ILogListener,Catel.Logging.LogEvent)">
            <summary>
            Determines whether the specified listener is interested in the log event.
            </summary>
            <param name="listener">The listener.</param>
            <param name="logEvent">The log event.</param>
            <returns>
            <c>true</c> if the specified listener is interested in the log event; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="listener"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Logging.TimeDisplay">
            <summary>
            Available time display formats.
            </summary>
        </member>
        <member name="F:Catel.Logging.TimeDisplay.Time">
            <summary>
            The time format.
            </summary>
        </member>
        <member name="F:Catel.Logging.TimeDisplay.DateTime">
            <summary>
            The date time format.
            </summary>
        </member>
        <member name="T:Catel.Messaging.MessageRecipientAttribute">
            <summary>
            Attribute defining a method as recipient for the <see cref="T:Catel.Messaging.MessageMediator"/>.
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageRecipientAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Messaging.MessageRecipientAttribute"/> class.
            </summary>
        </member>
        <member name="P:Catel.Messaging.MessageRecipientAttribute.Tag">
            <summary>
            Gets the tag.
            </summary>
        </member>
        <member name="T:Catel.Messaging.MessageMediatorHelper">
            <summary>
            Helper class for the <see cref="T:Catel.Messaging.MessageMediator"/> to allow easy subscription 
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediatorHelper.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageMediatorHelper.SubscribeRecipient(System.Object,Catel.Messaging.IMessageMediator)">
            <summary>
            Subscribes all methods of the specified instance that are decorated with the <see cref="T:Catel.Messaging.MessageRecipientAttribute"/>.
            </summary>
            <param name="instance">The instance to subscribe.</param>
            <param name="messageMediator">The message mediator. If <c>null</c>, the default will be used.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The object has non-public methods decorated with the <see cref="T:Catel.Messaging.MessageRecipientAttribute"/>, but the
            application is not written in .NET (but in Silverlight, Windows Phone or WinRT).</exception>
            <exception cref="T:System.InvalidCastException">One of the methods cannot be casted to a valid message method.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediatorHelper.UnsubscribeRecipient(System.Object,Catel.Messaging.IMessageMediator)">
            <summary>
            Unsubscribes all methods of the specified instance that are decorated with the <see cref="T:Catel.Messaging.MessageRecipientAttribute"/>.
            </summary>
            <param name="instance">The instance.</param>
            <param name="messageMediator">The message mediator. If <c>null</c>, the default will be used.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="instance"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Messaging.IMessageMediator">
            <summary>
             The interface definition for our Message mediator. This allows loose-event coupling between components
             in an application by sending messages to registered elements.
             <para />
             This class implements the mediator pattern.
            </summary>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.IsMessageRegistered``1(System.Object)">
            <summary>
            Determines whether the specified message type is registered.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="tag">The tag.</param>
            <returns>
              <c>true</c> if the message type is registered; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.IsMessageRegistered(System.Type,System.Object)">
            <summary>
            Determines whether the specified message type is registered.
            </summary>
            <param name="messageType">The type of the message.</param>
            <param name="tag">The tag.</param>
            <returns>
              <c>true</c> if the message type is registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="messageType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.Register``1(System.Object,System.Action{``0},System.Object)">
            <summary>
            Registers a specific recipient for a specific message.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="recipient">The recipient to register.</param>
            <param name="handler">The handler method.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is registered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be registered twice. If the same handler is already registered, this method will
            return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.Unregister``1(System.Object,System.Action{``0},System.Object)">
            <summary>
            Unregisters a specific recipient for a specific message with the specified tag.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="recipient">The recipient to unregister.</param>
            <param name="handler">The handler method.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.UnregisterRecipient(System.Object,System.Object)">
            <summary>
            Unregisters a specific recipient for all the (non-static) message the recipient is subscribed to.
            </summary>
            <param name="recipient">The recipient to unregister.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="recipient"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.UnregisterRecipientAndIgnoreTags(System.Object)">
            <summary>
            Unregisters a specific recipient for all the (non-static) message the recipient is subscribed to. 
            <para />
            This method ignores any tags. If a message recipient matches the specified recipient, it is unsubscribed.
            </summary>
            <param name="recipient">The recipient to unregister.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="recipient"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.SendMessage``1(``0,System.Object)">
            <summary>
            Broadcasts a message to all message targets for a given message tag and passes a parameter.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="message">The message parameter.</param>
            <param name="tag">The message tag.</param>
            <returns>
            <c>true</c> if any handlers were invoked; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.SendMessageAsync``1(``0,System.Object)">
            <summary>
            Broadcasts a message to all message targets for a given message tag and passes a parameter, the message targets are all called asynchronously.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="message">The message parameter.</param>
            <param name="tag">The message tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.IMessageMediator.CleanUp">
            <summary>
            Cleans up the list of registered handlers. All handlers that are no longer alive
            are removed from the list.
            <para />
            This method is automatically invoked after each call to <see cref="M:Catel.Messaging.IMessageMediator.SendMessage``1(``0,System.Object)"/>, but
            can also be invoked manually.
            </summary>
        </member>
        <member name="T:Catel.Messaging.MessageMediator">
            <summary>
            This class creates a simple Mediator which loosely connects different objects together.
            <para/>
            The message handlers are organized using string-based message keys and are held in a WeakReference collection.
            </summary>
        </member>
        <member name="T:Catel.Messaging.MessageMediator.WeakActionInfo">
            <summary>
            Object containing the weak action and the tag of a weak action.
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediator.WeakActionInfo.Action">
            <summary>
            The action to execute, which is always a <see cref="T:Catel.IWeakAction`1"/>.
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediator.WeakActionInfo.Tag">
            <summary>
            The tag which can be used to make a difference between messages.
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediator.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediator._instance">
            <summary>
            The static instance of the message mediator.
            </summary>
        </member>
        <member name="F:Catel.Messaging.MessageMediator._registeredHandlers">
            <summary>
            The currently registered handlers. The key is the type of the message, then the value is a list of
            interested listeners.
            </summary>
        </member>
        <member name="P:Catel.Messaging.MessageMediator.Default">
            <summary>
            Gets the default instance of the message mediator.
            </summary>
            <value>The default instance.</value>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.IsMessageRegistered``1(System.Object)">
            <summary>
            Determines whether the specified message type is registered.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="tag">The tag.</param>
            <returns>
              <c>true</c> if the message type is registered; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.IsMessageRegistered(System.Type,System.Object)">
            <summary>
            Determines whether the specified message type is registered.
            </summary>
            <param name="messageType">The type of the message.</param>
            <param name="tag">The tag.</param>
            <returns>
              <c>true</c> if the message type is registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="messageType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.Register``1(System.Object,System.Action{``0},System.Object)">
            <summary>
            Registers a specific recipient for a specific message.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="recipient">The recipient to register.</param>
            <param name="handler">The handler method.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is registered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be registered twice. If the same handler is already registered, this method will
            return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.Unregister``1(System.Object,System.Action{``0},System.Object)">
            <summary>
            Unregisters a specific recipient for a specific message with the specified tag.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="recipient">The recipient to unregister.</param>
            <param name="handler">The handler method.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.UnregisterRecipient(System.Object,System.Object)">
            <summary>
            Unregisters a specific recipient for all the (non-static) message the recipient is subscribed to.
            </summary>
            <param name="recipient">The recipient to unregister.</param>
            <param name="tag">The message tag.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="recipient"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.UnregisterRecipientAndIgnoreTags(System.Object)">
            <summary>
            Unregisters a specific recipient for all the (non-static) message the recipient is subscribed to. 
            <para />
            This method ignores any tags. If a message recipient matches the specified recipient, it is unsubscribed.
            </summary>
            <param name="recipient">The recipient to unregister.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <remarks>
            A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="recipient"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.SendMessage``1(``0,System.Object)">
            <summary>
            Broadcasts a message to all message targets for a given message tag and passes a parameter.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="message">The message parameter.</param>
            <param name="tag">The message tag.</param>
            <returns>
            <c>true</c> if any handlers were invoked; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.SendMessageAsync``1(``0,System.Object)">
            <summary>
            Broadcasts a message to all message targets for a given message tag and passes a parameter, the message targets are all called asynchronously.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="message">The message parameter.</param>
            <param name="tag">The message tag.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.CleanUp">
            <summary>
            Cleans up the list of registered handlers. All handlers that are no longer alive
            are removed from the list.
            <para />
            This method is automatically invoked after each call to <see cref="M:Catel.Messaging.MessageMediator.SendMessage``1(``0,System.Object)"/>, but
            can also be invoked manually.
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.UnregisterRecipient(System.Object,System.Object,System.Boolean)">
            <summary>
            Unregisters a specific recipient for all the (non-static) message the recipient is subscribed to.
            </summary>
            <param name="recipient">The recipient to unregister.</param>
            <param name="tag">The message tag.</param>
            <param name="ignoreTag">If set to <c>true</c>, tags are ignored.</param>
            <returns><c>true</c> if the handler is unregistered successfully; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="recipient"/> is <c>null</c>.</exception>
            <remarks>A handler cannot be unregistered when it is not registered first. If a handler is unregistered while it
            is not registered, this method will return <c>false</c>.</remarks>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.IsRegistered``1(System.Object,System.Action{``0},System.Object)">
            <summary>
            Determines whether the specified recipient is registered.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="recipient">The recipient.</param>
            <param name="handler">The handler.</param>
            <param name="tag">The tag.</param>
            <returns>
            	<c>true</c> if the specified recipient is registered; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.AreEqualHandlers``1(System.Action{``0},Catel.IWeakAction{``0})">
            <summary>
            Determines whether the handler and the weak action are equal.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <param name="handler">The handler to compare to the weak action.</param>
            <param name="weakAction">The weak action to compare to the handler.</param>
            <returns><c>true</c> if the handlers are equal; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="weakAction"/> is <c>null</c></exception>
        </member>
        <member name="M:Catel.Messaging.MessageMediator.GetRegisteredHandlers``1">
            <summary>
            Gets all the registered handlers for the specified message type.
            </summary>
            <typeparam name="TMessage">The type of the message.</typeparam>
            <returns>A list of handlers.</returns>
        </member>
        <member name="T:Catel.Messaging.CombinedMessage">
            <summary>
            Implements a message transferring a boolean value and a custom property.
            </summary>
        </member>
        <member name="M:Catel.Messaging.CombinedMessage.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Messaging.CombinedMessage"/> class.
            </summary>
            <remarks>
            Required by the base class.
            </remarks>
        </member>
        <member name="M:Catel.Messaging.CombinedMessage.#ctor(System.Boolean,System.Exception)">
            <summary>
            Prevents a default instance of the <see cref="T:Catel.Messaging.CombinedMessage"/> class from being created.
            </summary>
            <param name="data">The boolean data.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Catel.Messaging.CombinedMessage.SendWith(System.Boolean,System.Exception,System.Object)">
            <summary>
            Send a <see cref="T:Catel.Messaging.CombinedMessage"/> with the given payload data.
            </summary>
            <param name="data">The boolean payload Data to be sent with.</param>
            <param name="exception">The exception payload Data to be sent with.</param>
            <param name="tag">The optional Catel mediator tag to be used.</param>
        </member>
        <member name="P:Catel.Messaging.CombinedMessage.Exception">
            <summary>
            Provides access to the additional exception payload data of the message.
            </summary>
        </member>
        <member name="T:Catel.Messaging.MessageBase`2">
            <summary>
            Base class for messages distributed via the Catel MessageMediator subsystem. Inherit from this class
            to define individual message types.
            <para/>
            For most subclasses the only thing to code is an empty class body including the type parameters.
            <para/>
            For the payload data you can choose betweeen the following options:
            <list type="bullet">
            		<item><description>The Data property provided within this base class of type TData using simple types like int or string.</description></item>
            		<item><description>The Data property provided within this base class of type TData using userdefined data types.</description></item>
            		<item><description>Define properties on the derived message class itself.</description></item>
            		<item><description>A combination of the previous options.</description></item>
            	</list>
            </summary>
            <typeparam name="TMessage">The actual type of the message.</typeparam>
            <typeparam name="TData">The type of payload data to be carried with the message.</typeparam>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.#cctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            <para/>
            Necessary for two reasons:
            <list type="number">
            		<item><description>Create an instance of the Message class via the TMessage type parameter used by the With() method.</description></item>
            		<item><description>Allow derived classes to be defined using an empty class body with the implicit default constructor.</description></item>
            	</list>
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.#ctor(`1)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Messaging.MessageBase`2"/> class.
            </summary>
            <param name="data">The data.</param>
        </member>
        <member name="P:Catel.Messaging.MessageBase`2.Data">
            <summary>
            Provides access to the payload data.
            </summary>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.SendWith(`1,System.Object)">
            <summary>
            Use <see cref="M:Catel.Messaging.MessageBase`2.SendWith(`1,System.Object)">MessageClass.SendWith(data)</see> to send a new message via the mediator service.
            </summary>
            <param name="data">The payload data.</param>
            <param name="tag">The optional Catel mediator tag to be used.</param>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.Send(`0,System.Object)">
            <summary>
            Send the message.
            </summary>
            <param name="message">The message to be sent.</param>
            <param name="tag">The optional Catel mediator tag to be used.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="message"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.Register(System.Object,System.Action{`0},System.Object)">
            <summary>
            Convenient helper method to subscribe to this Message type.
            <para/>
            Usage:
            <list type="bullet">
            		<item><description>MessageClass.Register(this, msg =&gt; Handler) if the handler has the signature void Handler(MessageClass message)</description></item>
            		<item><description>MessageClass.Register(this, msg =&gt; Handler(msg.Data)) if the handler has the signature void Handler(TData data)</description></item>
            	</list>
            </summary>
            <param name="recipient">The instance which registers to the messages. Is most cases this will be <c>this</c>.</param>
            <param name="handler">A delegate handling the incoming message. For example: msg =&gt; Handler(msg.Data).</param>
            <param name="tag">The optional Catel mediator tag to be used.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.Unregister(System.Object,System.Action{`0},System.Object)">
            <summary>
            Convenient helper method to unsubscribe from this Message type.
            <para/>
            Usage:
            <list type="bullet">
            		<item><description>MessageClass.Register(this, msg =&gt; Handler) if the handler has the signature void Handler(MessageClass message)</description></item>
            		<item><description>MessageClass.Register(this, msg =&gt; Handler(msg.Data)) if the handler has the signature void Handler(TData data)</description></item>
            	</list>
            </summary>
            <param name="recipient">The instance which unregisters from the messages. Is most cases this will be <c>this</c>.</param>
            <param name="handler">A delegate handling the incoming message. For example: msg =&gt; Handler(msg.Data).</param>
            <param name="tag">The optional Catel mediator tag to be used.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Messaging.MessageBase`2.With(`1)">
            <summary>
            Returns an instance of the MessageClass populated with payload Data.<br/>
            <para />
            Most times used internally by the <see cref="M:Catel.Messaging.MessageBase`2.SendWith(`1,System.Object)"/> method.
            </summary>
            <param name="data">The payload data.</param>
            <returns>An instance of the MessageClass populated with the given payload data.</returns>
        </member>
        <member name="T:Catel.Messaging.SimpleMessage">
            <summary>
            Implements a simple message with a string payload data.
            </summary>
        </member>
        <member name="T:Catel.Core.ModuleInitializer">
            <summary>
            Class that gets called as soon as the module is loaded.
            </summary>
            <remarks>
            This is made possible thanks to Fody.
            </remarks>
        </member>
        <member name="M:Catel.Core.ModuleInitializer.Initialize">
            <summary>
            Initializes the module.
            </summary>
        </member>
        <member name="T:Catel.Reflection.CachedPropertyInfo">
            <summary>
            Cached implementation of the <see cref="P:Catel.Reflection.CachedPropertyInfo.PropertyInfo"/>.
            </summary>
        </member>
        <member name="M:Catel.Reflection.CachedPropertyInfo.#ctor(System.Reflection.PropertyInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.CachedPropertyInfo"/> class.
            </summary>
            <param name="propertyInfo">The property information.</param>
        </member>
        <member name="P:Catel.Reflection.CachedPropertyInfo.PropertyInfo">
            <summary>
            Gets the property information.
            </summary>
            <value>The property information.</value>
        </member>
        <member name="M:Catel.Reflection.CachedPropertyInfo.IsDecoratedWithAttribute(System.Type)">
            <summary>
            Determines whether the property is decorated with the specified attribute.
            </summary>
            <param name="attributeType">Type of the attribute.</param>
            <returns><c>true</c> if the property is decorated with the specified attribute.; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:Catel.Reflection.CachedPropertyInfo.HasPublicGetter">
            <summary>
            Gets a value indicating whether this instance has a public getter.
            </summary>
            <value><c>true</c> if this instance has a public getter; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Catel.Reflection.CachedPropertyInfo.HasPublicSetter">
            <summary>
            Gets a value indicating whether this instance has a public setter.
            </summary>
            <value><c>true</c> if this instance has a public setter; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.Reflection.AssemblyLoadedEventArgs">
            <summary>
            Event args for the <see cref="E:Catel.Reflection.TypeCache.AssemblyLoaded"/> event.
            </summary>
        </member>
        <member name="M:Catel.Reflection.AssemblyLoadedEventArgs.#ctor(System.Reflection.Assembly,System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.AssemblyLoadedEventArgs" /> class.
            </summary>
            <param name="assembly">The assembly.</param>
            <param name="loadedTypes">The loaded types.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="assembly"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="loadedTypes"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Reflection.AssemblyLoadedEventArgs.Assembly">
            <summary>
            Gets the assembly.
            </summary>
            <value>The assembly.</value>
        </member>
        <member name="P:Catel.Reflection.AssemblyLoadedEventArgs.LoadedTypes">
            <summary>
            Gets the loaded types.
            </summary>
            <value>The loaded types.</value>
        </member>
        <member name="T:Catel.Reflection.CannotGetPropertyValueException">
            <summary>
            Exception in case a property value cannot be get.
            </summary>
        </member>
        <member name="M:Catel.Reflection.CannotGetPropertyValueException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.CannotGetPropertyValueException"/> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="P:Catel.Reflection.CannotGetPropertyValueException.PropertyName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="T:Catel.Reflection.CannotSetPropertyValueException">
            <summary>
            Exception in case a property value cannot be set.
            </summary>
        </member>
        <member name="M:Catel.Reflection.CannotSetPropertyValueException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.CannotSetPropertyValueException"/> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="P:Catel.Reflection.CannotSetPropertyValueException.PropertyName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="T:Catel.Reflection.PropertyNotFoundException">
            <summary>
            Exception for in case a property is not found.
            </summary>
        </member>
        <member name="M:Catel.Reflection.PropertyNotFoundException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.PropertyNotFoundException"/> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="P:Catel.Reflection.PropertyNotFoundException.PropertyName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="T:Catel.Reflection.AppDomainExtensions">
            <summary>
            <see cref="T:System.AppDomain"/> extensions.
            </summary>
        </member>
        <member name="M:Catel.Reflection.AppDomainExtensions.GetTypes(System.AppDomain)">
            <summary>
            Gets a list of all types inside the <see cref="T:System.AppDomain"/>.
            </summary>
            <param name="appDomain">The app domain.</param>
            <returns>List of types found in the <see cref="T:System.AppDomain"/>.</returns>
            <remarks>
            This class must only be used by Catel. To make sure that an application performs, make sure to use
            <see cref="M:Catel.Reflection.TypeCache.GetTypes(System.Func{System.Type,System.Boolean})"/> instead.
            </remarks>
        </member>
        <member name="T:Catel.Reflection.AssemblyExtensions">
            <summary>
            Assembly info helper class.
            </summary>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Title(System.Reflection.Assembly)">
            <summary>
            Gets the title of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The title of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Version(System.Reflection.Assembly,System.Int32)">
            <summary>
            Gets the version of a specific assembly with a separator count.
            </summary>
            <param name="assembly">The assembly.</param>
            <param name="separatorCount">Number that determines how many version numbers should be returned.</param>
            <returns>The version of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.InformationalVersion(System.Reflection.Assembly)">
            <summary>
            Gets the informational version.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The informational version.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Description(System.Reflection.Assembly)">
            <summary>
            Gets the description of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The description of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Product(System.Reflection.Assembly)">
            <summary>
            Gets the product of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The product of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Copyright(System.Reflection.Assembly)">
            <summary>
            Gets the copyright of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The copyright of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.Company(System.Reflection.Assembly)">
            <summary>
            Gets the company of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The company of the assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.GetDirectory(System.Reflection.Assembly)">
            <summary>
            Gets the directory of a specific assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The directory of the assembly.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="assembly"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.GetAssemblyAttribute``1(System.Reflection.Assembly)">
            <summary>
            Gets the assembly attribute.
            </summary>
            <typeparam name="TAttibute">The type of the attribute.</typeparam>
            <param name="assembly">The assembly.</param>
            <returns>The attribute that the assembly is decorated with or <c>null</c> if the assembly is not decorated with the attribute.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyExtensions.GetAssemblyAttributeValue(System.Reflection.Assembly,System.Type,System.String)">
            <summary>
            Gets the specific <see cref="T:System.Attribute"/> value of the attribute type in the specified assembly.
            </summary>
            <param name="assembly">Assembly to read the information from.</param>
            <param name="attribute">Attribute to read.</param>
            <param name="property">Property to read from the attribute.</param>
            <returns>Value of the attribute or empty if the attribute is not found.</returns>
        </member>
        <member name="T:Catel.Reflection.DelegateExtensions">
            <summary>
            Extension methods for <see cref="T:System.Delegate"/>.
            </summary>
        </member>
        <member name="M:Catel.Reflection.DelegateExtensions.GetMethodInfoEx(System.Delegate)">
            <summary>
            Gets the method info of the delegate.
            </summary>
            <param name="del">The delegate.</param>
            <returns>The <see cref="T:System.Reflection.MethodInfo"/> of the delegate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="del"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.MemberInfoExtensions">
            <summary>
            Member info extensions.
            </summary>
        </member>
        <member name="M:Catel.Reflection.MemberInfoExtensions.GetSignature(System.Reflection.ConstructorInfo)">
            <summary>
            Gets the signature of a method.
            </summary>
            <param name="constructorInfo">The member info.</param>
            <returns>The signature of the member info.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="constructorInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.MemberInfoExtensions.GetSignature(System.Reflection.MethodInfo)">
            <summary>
            Gets the signature of a method.
            </summary>
            <param name="methodInfo">The member info.</param>
            <returns>The signature of the member info.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="methodInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.MemberInfoExtensions.IsStatic(System.Reflection.PropertyInfo)">
            <summary>
            Returns whether property is static.
            </summary>
            <param name="propertyInfo">Property info.</param>
        </member>
        <member name="T:Catel.Reflection.ObjectExtensions">
            <summary>
            Object extensions for reflection.
            </summary>
        </member>
        <member name="M:Catel.Reflection.ObjectExtensions.ToAttributeArray(System.Object[])">
            <summary>
            Converts the list of objects to an array of attributes, very easy to use during GetCustomAttribute reflection.
            </summary>
            <param name="objects">The object array, can be <c>null</c>.</param>
            <returns>Attribute array or empty array if <paramref name="objects"/> is <c>null</c>.</returns>
        </member>
        <member name="T:Catel.Reflection.ReflectionExtensions">
            <summary>
            Reflection extension class.
            </summary>
            <summary>
            Reflection extension class.
            </summary>
            <summary>
            Reflection extensions cache info.
            </summary>
            <summary>
            Reflection extension class.
            </summary>
            <summary>
            Reflection extension class.
            </summary>
            <summary>
            Reflection extension class.
            </summary>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAttribute``1(System.Reflection.MemberInfo)">
            <summary>
            Gets the attribute from the member.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="memberInfo">The member Info.</param>
            <returns>The attribute or <c>null</c> of the member is not decorated with the attribute.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAttribute(System.Reflection.MemberInfo,System.Type)">
            <summary>
            Gets the attribute from the member.
            </summary>
            <param name="memberInfo">The member Info.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The attribute or <c>null</c> of the member is not decorated with the attribute.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAttribute``1(System.Type)">
            <summary>
            Gets the attribute from the type.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="type">The type.</param>
            <returns>The attribute or <c>null</c> of the member is not decorated with the attribute.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAttribute(System.Type,System.Type)">
            <summary>
            Gets the attribute from the type.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns>The attribute or <c>null</c> of the member is not decorated with the attribute.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.TryGetAttribute``1(System.Reflection.MemberInfo,``0@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="memberInfo">The member Info.</param>
            <param name="attribute">The attribute.</param>
            <returns>
            <c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.TryGetAttribute(System.Reflection.MemberInfo,System.Type,System.Attribute@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <param name="memberInfo">The member Info.</param>
            <param name="attributeType">Type of the attribute.</param>
            <param name="attribute">The attribute.</param>
            <returns>
              <c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.TryGetAttribute``1(System.Type,``0@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="type">The type.</param>
            <param name="attribute">The attribute.</param>
            <returns><c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.TryGetAttribute(System.Type,System.Type,System.Attribute@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">Type of the attribute.</param>
            <param name="attribute">The attribute.</param>
            <returns><c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsDecoratedWithAttribute``1(System.Reflection.MemberInfo)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="memberInfo">The member info.</param>
            <returns>
              <c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsDecoratedWithAttribute(System.Reflection.MemberInfo,System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <param name="memberInfo">The member info.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns>
              <c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsDecoratedWithAttribute``1(System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="type">The type.</param>
            <returns><c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsDecoratedWithAttribute(System.Type,System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns><c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.ReflectionExtensions.ReflectionTypes">
            <summary>
            The reflection types.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Constructor">
            <summary>
            The constructor.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Field">
            <summary>
            The field.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Property">
            <summary>
            The property.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Event">
            <summary>
            The event.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Method">
            <summary>
            The method.
            </summary>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions.ReflectionTypes.Member">
            <summary>
            The members.
            </summary>
        </member>
        <member name="T:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey">
            <summary>
            The reflection cache key.
            </summary>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.#ctor(System.Type,Catel.Reflection.ReflectionExtensions.ReflectionTypes,System.Reflection.BindingFlags,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey"/> class. 
            </summary>
            <param name="type">
            The type.
            </param>
            <param name="reflectionType">
            The reflection type.
            </param>
            <param name="bindingFlags">
            The binding flags.
            </param>
            <param name="additionalInfo">
            The additional info.
            </param>
        </member>
        <member name="P:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.Type">
            <summary>
            Gets Type.
            </summary>
        </member>
        <member name="P:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.ReflectionType">
            <summary>
            Gets ReflectionType.
            </summary>
        </member>
        <member name="P:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.BindingFlags">
            <summary>
            Gets BindingFlags.
            </summary>
        </member>
        <member name="P:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.AdditionalInfo">
            <summary>
            Gets AdditionalInfo.
            </summary>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.Equals(Catel.Reflection.ReflectionExtensions.ReflectionCacheKey)">
            <summary>
            Equalses the specified other.
            </summary>
            <param name="other">The other.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.CalculateHashCode">
            <summary>
            Calculates the hash code.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
            <returns>
              <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ReflectionCacheKey.ToString">
            <summary>
            The to string.
            </summary>
            <returns>
            The to string.
            </returns>
        </member>
        <member name="F:Catel.Reflection.ReflectionExtensions._convertableDictionary">
            <summary>
            Dictionary containing all possible implicit conversions of system types.
            </summary>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsCatelType(System.Type)">
            <summary>
            Determines whether the specified type is a Catel type.
            </summary>
            <param name="type">Type of the target.</param>
            <returns>
            <c>true</c> if the specified type is a Catel type; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetParentTypes(System.Type)">
            <summary>
            Gets the parent types.
            </summary>
            <param name="type">The type.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetSafeFullName(System.Type)">
            <summary>
            Gets the full name of the type in a safe way. This means it checks for null first.
            </summary>
            <param name="type">The type.</param>
            <returns>The safe full name.</returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetCustomAttributeEx(System.Type,System.Type,System.Boolean)">
            <summary>
            The get custom attribute ex.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">The inherit.</param>
            <returns>The get custom attribute ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetCustomAttributesEx(System.Type,System.Boolean)">
            <summary>
            The get custom attributes ex.
            </summary>
            <param name="type">The type.</param>
            <param name="inherit">The inherit.</param>
            <returns>System.Object[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetCustomAttributesEx(System.Type,System.Type,System.Boolean)">
            <summary>
            The get custom attributes ex.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">The inherit.</param>
            <returns>System.Object[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ContainsGenericParametersEx(System.Type)">
            <summary>
            Determines whether the specified type contains generic parameters.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type contains generic parameters; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAssemblyEx(System.Type)">
            <summary>
            The get assembly ex.
            </summary>
            <param name="type">The type.</param>
            <returns>Assembly.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetAssemblyFullNameEx(System.Type)">
            <summary>
            The get assembly full name ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The get assembly full name ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.HasBaseTypeEx(System.Type,System.Type)">
            <summary>
            The has base type ex.
            </summary>
            <param name="type">The type.</param>
            <param name="typeToCheck">The type to check.</param>
            <returns>The has base type ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsSerializableEx(System.Type)">
            <summary>
            The is serializable ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is serializable ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsPublicEx(System.Type)">
            <summary>
            The is public ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is public ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsNestedPublicEx(System.Type)">
            <summary>
            The is nested public ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is nested public ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsInterfaceEx(System.Type)">
            <summary>
            The is interface ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is interface ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsAbstractEx(System.Type)">
            <summary>
            Determines whether the specified type is abstract.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is abstract; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsArrayEx(System.Type)">
            <summary>
            Determines whether the specified type is an array.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is an array; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsClassEx(System.Type)">
            <summary>
            Determines whether the specified type is a class.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is a class; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsValueTypeEx(System.Type)">
            <summary>
            The is value type ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is value type ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsGenericTypeEx(System.Type)">
            <summary>
            The is generic type ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is generic type ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsGenericTypeDefinitionEx(System.Type)">
            <summary>
            The is generic type definition ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is generic type ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ImplementsInterfaceEx``1(System.Type)">
            <summary>
            Returns whether the specified type implements the specified interface.
            </summary>
            <typeparam name="TInterface">The type of the t interface.</typeparam>
            <param name="type">The type.</param>
            <returns><c>true</c> if the type implements the interface; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.ImplementsInterfaceEx(System.Type,System.Type)">
            <summary>
            Returns whether the specified type implements the specified interface.
            </summary>
            <param name="type">The type.</param>
            <param name="interfaceType">Type of the interface.</param>
            <returns><c>true</c> if the type implements the interface; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="interfaceType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsPrimitiveEx(System.Type)">
            <summary>
            Returns whether the specified type is a primitive type.
            </summary>
            <param name="type">The type.</param>
            <returns>The primitive type specification.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsEnumEx(System.Type)">
            <summary>
            The is enum ex.
            </summary>
            <param name="type">The type.</param>
            <returns>The is enum ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsCOMObjectEx(System.Type)">
            <summary>
            Determines whether the specified type is a COM object.
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetGenericTypeDefinitionEx(System.Type)">
            <summary>
            Gets the generic type definition of the specified type.
            </summary>
            <param name="type">The type.</param>
            <returns>The generic type definition.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The specified type is not a generic type.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetGenericArgumentsEx(System.Type)">
            <summary>
            The get generic arguments ex.
            </summary>
            <param name="type">The type.</param>
            <returns>Type[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetElementTypeEx(System.Type)">
            <summary>
            Gets the element type of the specified type.
            </summary>
            <param name="type">The type.</param>
            <returns>Type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetInterfacesEx(System.Type)">
            <summary>
            The get interfaces ex.
            </summary>
            <param name="type">The type.</param>
            <returns>Type[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetBaseTypeEx(System.Type)">
            <summary>
            The get base type ex.
            </summary>
            <param name="type">The type.</param>
            <returns>Type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsAssignableFromEx(System.Type,System.Type)">
            <summary>
            The is assignable from ex.
            </summary>
            <param name="type">The type.</param>
            <param name="typeToCheck">The type to check.</param>
            <returns>The is assignable from ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToCheck" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.IsInstanceOfTypeEx(System.Type,System.Object)">
            <summary>
            The is instance of type ex.
            </summary>
            <param name="type">The type.</param>
            <param name="objectToCheck">The object to check.</param>
            <returns>The is instance of type ex.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="objectToCheck" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetConstructorEx(System.Type,System.Type[])">
            <summary>
            The get constructor ex.
            </summary>
            <param name="type">The type.</param>
            <param name="types">The types.</param>
            <returns>ConstructorInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="types" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetConstructorsEx(System.Type)">
            <summary>
            The get constructors ex.
            </summary>
            <param name="type">The type.</param>
            <returns>ConstructorInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMemberEx(System.Type,System.String,System.Boolean,System.Boolean)">
            <summary>
            Gets the member on the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="flattenHierarchy">The flatten hierarchy.</param>
            <param name="allowStaticMembers">The allow static members.</param>
            <returns>MemberInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMemberEx(System.Type,System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets the member on the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>MemberInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetFieldEx(System.Type,System.String,System.Boolean,System.Boolean)">
            <summary>
            The get field ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="flattenHierarchy">The flatten hierarchy.</param>
            <param name="allowStaticMembers">The allow static members.</param>
            <returns>FieldInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetFieldEx(System.Type,System.String,System.Reflection.BindingFlags)">
            <summary>
            The get field ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>FieldInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetFieldsEx(System.Type,System.Boolean,System.Boolean)">
            <summary>
            The get fields ex.
            </summary>
            <param name="type">The type.</param>
            <param name="flattenHierarchy">The flatten hierarchy.</param>
            <param name="allowStaticMembers">The allow static members.</param>
            <returns>FieldInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetFieldsEx(System.Type,System.Reflection.BindingFlags)">
            <summary>
            The get fields ex.
            </summary>
            <param name="type">The type.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>FieldInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetPropertyEx(System.Type,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            The get property ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="flattenHierarchy">The flatten hierarchy.</param>
            <param name="allowStaticMembers">The allow static members.</param>
            <param name="allowExplicitInterfaceProperties">if set to <c>true</c>, this method will check for explicit interface implementations when the property is not found.</param>
            <returns>PropertyInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetPropertyEx(System.Type,System.String,System.Reflection.BindingFlags,System.Boolean)">
            <summary>
            The get property ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <param name="allowExplicitInterfaceProperties">if set to <c>true</c>, this method will check for explicit interface implementations when the property is not found.</param>
            <returns>PropertyInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetPropertiesEx(System.Type,System.Boolean,System.Boolean)">
            <summary>
            The get properties ex.
            </summary>
            <param name="type">The type.</param>
            <param name="flattenHierarchy">The flatten hierarchy.</param>
            <param name="allowStaticMembers">The allow static members.</param>
            <returns>PropertyInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetPropertiesEx(System.Type,System.Reflection.BindingFlags)">
            <summary>
            The get properties ex.
            </summary>
            <param name="type">The type.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>PropertyInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetEventEx(System.Type,System.String,System.Boolean,System.Boolean)">
            <summary>
            The get event ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="flattenHierarchy">The flatten Hierarchy.</param>
            <param name="allowStaticMembers">The allow Static Members.</param>
            <returns>EventInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetEventEx(System.Type,System.String,System.Reflection.BindingFlags)">
            <summary>
            The get event ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>EventInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetEventsEx(System.Type,System.Boolean,System.Boolean)">
            <summary>
            The get events ex.
            </summary>
            <param name="type">The type.</param>
            <param name="flattenHierarchy">The flatten Hierarchy.</param>
            <param name="allowStaticMembers">The allow Static Members.</param>
            <returns>EventInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodEx(System.Type,System.String,System.Boolean,System.Boolean)">
            <summary>
            The get method ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="flattenHierarchy">The flatten Hierarchy.</param>
            <param name="allowStaticMembers">The allow Static Members.</param>
            <returns>MethodInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodEx(System.Type,System.String,System.Reflection.BindingFlags)">
            <summary>
            The get method ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>MethodInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodEx(System.Type,System.String,System.Type[],System.Boolean,System.Boolean)">
            <summary>
            The get method ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="types">The types.</param>
            <param name="flattenHierarchy">The flatten Hierarchy.</param>
            <param name="allowStaticMembers">The allow Static Members.</param>
            <returns>MethodInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodEx(System.Type,System.String,System.Type[],System.Reflection.BindingFlags)">
            <summary>
            The get method ex.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="types">The types.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>MethodInfo.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="name" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodsEx(System.Type,System.Boolean,System.Boolean)">
            <summary>
            The get methods ex.
            </summary>
            <param name="type">The type.</param>
            <param name="flattenHierarchy">The flatten Hierarchy.</param>
            <param name="allowStaticMembers">The allow Static Members.</param>
            <returns>MethodInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.ReflectionExtensions.GetMethodsEx(System.Type,System.Reflection.BindingFlags)">
            <summary>
            The get methods ex.
            </summary>
            <param name="type">The type.</param>
            <param name="bindingFlags">The binding Flags.</param>
            <returns>MethodInfo[][].</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.TypeExtensions">
            <summary>
            Extensions for the type class.
            </summary>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsClassType(System.Type)">
            <summary>
            Determines whether the specified type is a class type, meaning it is not a value type but also not a string
            or any of the primitive types in .NET.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if this type is a class type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsCollection(System.Type)">
            <summary>
            Determines whether the specified type is a collection.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is a collection; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsDictionary(System.Type)">
            <summary>
            Determines whether the specified type is a dictionary.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is a dictionary; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsNullableType(System.Type)">
            <summary>
            Returns whether a type is nullable or not.
            </summary>
            <param name="type">Type to check.</param>
            <returns>True if the type is nullable, otherwise false.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsBasicType(System.Type)">
            <summary>
            Determines whether the specified type is a basic type. A basic type is one that can be wholly expressed
            as an XML attribute. All primitive data types and <see cref="T:System.String"/> and <see cref="T:System.DateTime"/> are basic types.
            </summary>
            <param name="type">The type to check.</param>
            <returns><c>true</c> if the specified type is a basic type; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.IsModelBase(System.Type)">
            <summary>
            Determines whether the specified type derives from <see cref="T:Catel.Data.ModelBase" />.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is a model base; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeExtensions.GetCollectionElementType(System.Type)">
            <summary>
            Gets the element type of the collection.
            </summary>
            <param name="type">The type.</param>
            <returns>Type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.AssemblyHelper">
            <summary>
            Assembly helper class.
            </summary>
        </member>
        <member name="F:Catel.Reflection.AssemblyHelper.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetEntryAssembly">
            <summary>
            Gets the entry assembly.
            </summary>
            <returns>Assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetAssemblyNameWithVersion(System.String)">
            <summary>
            Gets the assembly name with version which is currently available in the <see cref="T:System.AppDomain" />.
            </summary>
            <param name="assemblyNameWithoutVersion">The assembly name without version.</param>
            <returns>The assembly name with version or <c>null</c> if the assembly is not found in the <see cref="T:System.AppDomain"/>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="assemblyNameWithoutVersion" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetAllTypesSafely(System.Reflection.Assembly,System.Boolean)">
            <summary>
            Gets all types from the assembly safely. Sometimes, the <see cref="T:System.Reflection.ReflectionTypeLoadException"/> is thrown,
            and no types are returned. In that case the user must manually get the successfully loaded types from the
            <see cref="P:System.Reflection.ReflectionTypeLoadException.Types"/>.
            <para/>
            This method automatically loads the types. If the <see cref="T:System.Reflection.ReflectionTypeLoadException"/> occurs, this method
            will return the types that were loaded successfully.
            </summary>
            <param name="assembly">The assembly.</param>
            <param name="logLoaderExceptions">If set to <c>true</c>, the loader exceptions will be logged.</param>
            <returns>The array of successfully loaded types.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="assembly"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetLoadedAssemblies">
            <summary>
            Gets the loaded assemblies by using the right method. For Windows applications, it uses
            <c>AppDomain.GetAssemblies()</c>. For Silverlight, it uses the assemblies
            from the current application.
            </summary>
            <returns><see cref="T:System.Collections.Generic.List`1" /> of all loaded assemblies.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetLoadedAssemblies(System.AppDomain)">
            <summary>
            Gets the loaded assemblies by using the right method. For Windows applications, it uses
            <c>AppDomain.GetAssemblies()</c>. For Silverlight, it uses the assemblies
            from the current application.
            </summary>
            <param name="appDomain">The app domain to search in.</param>
            <returns><see cref="T:System.Collections.Generic.List`1" /> of all loaded assemblies.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.GetLoadedAssemblies(System.AppDomain,System.Boolean)">
            <summary>
            Gets the loaded assemblies by using the right method. For Windows applications, it uses
            <c>AppDomain.GetAssemblies()</c>. For Silverlight, it uses the assemblies
            from the current application.
            </summary>
            <param name="appDomain">The app domain to search in.</param>
            <param name="ignoreDynamicAssemblies">if set to <c>true</c>, dynamic assemblies are being ignored.</param>
            <returns><see cref="T:System.Collections.Generic.List`1" /> of all loaded assemblies.</returns>
        </member>
        <member name="M:Catel.Reflection.AssemblyHelper.IsDynamicAssembly(System.Reflection.Assembly)">
            <summary>
            Determines whether the specified assembly is a dynamic assembly.
            </summary>
            <param name="assembly"></param>
            <returns><c>true</c> if the specified assembly is a dynamic assembly; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.Reflection.AttributeHelper">
            <summary>
            Attribute helper class.
            </summary>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.TryGetAttribute``1(System.Reflection.MemberInfo,``0@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="memberInfo">The member Info.</param>
            <param name="attribute">The attribute.</param>
            <returns>
            <c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.TryGetAttribute(System.Reflection.MemberInfo,System.Type,System.Attribute@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <param name="memberInfo">The member Info.</param>
            <param name="attributeType">Type of the attribute.</param>
            <param name="attribute">The attribute.</param>
            <returns>
              <c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.TryGetAttribute``1(System.Type,``0@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <typeparam name="TAttribute">The attribute type.</typeparam>
            <param name="type">The type.</param>
            <param name="attribute">The attribute.</param>
            <returns><c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.TryGetAttribute(System.Type,System.Type,System.Attribute@)">
            <summary>
            Tries to the get attribute.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">Type of the attribute.</param>
            <param name="attribute">The attribute.</param>
            <returns><c>true</c> if the attribute is retrieved successfully; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.IsDecoratedWithAttribute``1(System.Reflection.MemberInfo)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="memberInfo">The member info.</param>
            <returns>
              <c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.IsDecoratedWithAttribute(System.Reflection.MemberInfo,System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <param name="memberInfo">The member info.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns>
              <c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="memberInfo"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.IsDecoratedWithAttribute``1(System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="type">The type.</param>
            <returns><c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.AttributeHelper.IsDecoratedWithAttribute(System.Type,System.Type)">
            <summary>
            Determines whether the specified member is decorated with the specified attribute type.
            </summary>
            <param name="type">The type.</param>
            <param name="attributeType">Type of the attribute.</param>
            <returns><c>true</c> if the member is decorated with the attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="attributeType" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.BindingFlagsHelper">
            <summary>
            The binding flags helper.
            </summary>
        </member>
        <member name="F:Catel.Reflection.BindingFlagsHelper.DefaultBindingFlags">
            <summary>
            The default binding flags.
            </summary>
        </member>
        <member name="M:Catel.Reflection.BindingFlagsHelper.GetFinalBindingFlags(System.Boolean,System.Boolean,System.Nullable{System.Boolean})">
            <summary>
            Gets final binding flags and respects the <see cref="F:Catel.Reflection.BindingFlagsHelper.DefaultBindingFlags"/> as defined in Catel.
            </summary>
            <param name="flattenHierarchy">A value representing whether the hierarchy should be flattened. Corresponds with <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy"/>.</param>
            <param name="allowStaticMembers">A value representing whether static members should be included. Corresponds with <see cref="F:System.Reflection.BindingFlags.Static"/>.</param>
            <param name="allowNonPublicMembers">
            A value representing whether non-public members should be included. Corresponds with <see cref="F:System.Reflection.BindingFlags.NonPublic"/>.
            <para/>
            If this value is <c>null</c>, the default of the framework will be used. Also see <see cref="F:Catel.Reflection.BindingFlagsHelper.DefaultBindingFlags"/>.
            </param>
            <returns>The final binding flags.</returns>
        </member>
        <member name="T:Catel.Reflection.DelegateHelper">
            <summary>
            A class to be able to create delegates in both .NET and WinRT.
            </summary>
        </member>
        <member name="M:Catel.Reflection.DelegateHelper.CreateDelegate(System.Type,System.Reflection.MethodInfo)">
            <summary>
            Creates a static delegate for the specified method.
            </summary>
            <param name="delegateType">Type of the delegate.</param>
            <param name="methodInfo">The method info.</param>
            <returns>The delegate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="delegateType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="methodInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.DelegateHelper.CreateDelegate(System.Type,System.Type,System.String)">
            <summary>
            Creates a delegate for the specified method and target.
            </summary>
            <param name="delegateType">Type of the delegate.</param>
            <param name="targetType">Type of the target.</param>
            <param name="methodName">Name of the method.</param>
            <returns>The delegate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="delegateType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="targetType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="methodName"/> is <c>null</c> or whitespace.</exception>
            <remarks></remarks>
        </member>
        <member name="M:Catel.Reflection.DelegateHelper.CreateDelegate(System.Type,System.Object,System.String)">
            <summary>
            Creates a delegate for the specified method and target.
            </summary>
            <param name="delegateType">Type of the delegate.</param>
            <param name="target">The target. Cannot be <c>null</c> for this method.</param>
            <param name="methodName">Name of the method.</param>
            <returns>The delegate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="delegateType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="methodName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.DelegateHelper.CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo)">
            <summary>
            Creates a delegate for the specified method and target.
            </summary>
            <param name="delegateType">Type of the delegate.</param>
            <param name="target">The target. If <c>null</c>, the method will be assumed static.</param>
            <param name="methodInfo">The method info.</param>
            <returns>The delegate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="delegateType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="methodInfo"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Reflection.PropertyHelper">
            <summary>
            Property helper class.
            </summary>
            <summary>
            Property helper class.
            </summary>
        </member>
        <member name="F:Catel.Reflection.PropertyHelper.Log">
            <summary>
            The <see cref="T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.IsPublicProperty(System.Object,System.String)">
            <summary>
            Determines whether the specified property is a public property on the specified object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <returns><c>true</c> if the property is a public property on the specified object; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.IsPublicProperty(System.Object,System.String,System.Boolean)">
            <summary>
            Determines whether the specified property is a public property on the specified object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <returns><c>true</c> if the property is a public property on the specified object; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.IsPropertyAvailable(System.Object,System.String)">
            <summary>
            Determines whether the specified property is available on the object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <returns><c>true</c> if the property exists on the object type; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.IsPropertyAvailable(System.Object,System.String,System.Boolean)">
            <summary>
            Determines whether the specified property is available on the object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <returns><c>true</c> if the property exists on the object type; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TryGetPropertyValue(System.Object,System.String,System.Object@)">
            <summary>
            Tries to get the property value. If it fails, not exceptions will be thrown but the <paramref name="value" />
            is set to a default value and the method will return <c>false</c>.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value as output parameter.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TryGetPropertyValue(System.Object,System.String,System.Boolean,System.Object@)">
            <summary>
            Tries to get the property value. If it fails, not exceptions will be thrown but the <paramref name="value" />
            is set to a default value and the method will return <c>false</c>.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <param name="value">The value as output parameter.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TryGetPropertyValue``1(System.Object,System.String,``0@)">
            <summary>
            Tries to get the property value. If it fails, not exceptions will be thrown but the <paramref name="value" />
            is set to a default value and the method will return <c>false</c>.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value as output parameter.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TryGetPropertyValue``1(System.Object,System.String,System.Boolean,``0@)">
            <summary>
            Tries to get the property value. If it fails, not exceptions will be thrown but the <paramref name="value" />
            is set to a default value and the method will return <c>false</c>.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <param name="value">The value as output parameter.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyValue(System.Object,System.String)">
            <summary>
            Gets the property value of a specific object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <returns>The property value or <c>null</c> if no property can be found.</returns>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotGetPropertyValueException">The property value cannot be read.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyValue(System.Object,System.String,System.Boolean)">
            <summary>
            Gets the property value of a specific object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <returns>The property value or <c>null</c> if no property can be found.</returns>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotGetPropertyValueException">The property value cannot be read.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyValue``1(System.Object,System.String)">
            <summary>
            Gets the property value of a specific object.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <returns>The property value or <c>null</c> if no property can be found.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotGetPropertyValueException">The property value cannot be read.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyValue``1(System.Object,System.String,System.Boolean)">
            <summary>
            Gets the property value of a specific object.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <returns>The property value or <c>null</c> if no property can be found.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotGetPropertyValueException">The property value cannot be read.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TrySetPropertyValue(System.Object,System.String,System.Object)">
            <summary>
            Tries to set the property value. If it fails, no exceptions will be thrown, but <c>false</c> will
            be returned.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.TrySetPropertyValue(System.Object,System.String,System.Object,System.Boolean)">
            <summary>
            Tries to set the property value. If it fails, no exceptions will be thrown, but <c>false</c> will
            be returned.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <returns><c>true</c> if the method succeeds; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.SetPropertyValue(System.Object,System.String,System.Object)">
            <summary>
            Sets the property value of a specific object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotSetPropertyValueException">The the property value cannot be written.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.SetPropertyValue(System.Object,System.String,System.Object,System.Boolean)">
            <summary>
            Sets the property value of a specific object.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case when searching for the property name.</param>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException">The <paramref name="obj" /> is not found or not publicly available.</exception>
            <exception cref="T:Catel.Reflection.CannotSetPropertyValueException">The the property value cannot be written.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetHiddenPropertyValue``1(System.Object,System.String,System.Type)">
            <summary>
            Gets hidden property value.
            </summary>
            <typeparam name="TValue">The type of the T value.</typeparam>
            <param name="obj">The obj.</param>
            <param name="property">The property.</param>
            <param name="baseType">The base Type.</param>
            <returns>``0.</returns>
            <exception cref="T:Catel.Reflection.PropertyNotFoundException"></exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="property" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="obj" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyInfo(System.Object,System.String,System.Boolean)">
            <summary>
            Gets the property info from the cache.
            </summary>
            <param name="obj">The object.</param>
            <param name="property">The property.</param>
            <param name="ignoreCase">if set to <c>true</c>, ignore case.</param>
            <returns>PropertyInfo.</returns>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyName(System.Linq.Expressions.Expression,System.Boolean)">
            <summary>
            Gets the name of the property based on the expression.
            </summary>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">If set to <c>true</c>, nested properties are allowed.</param>
            <returns>The string representing the property name.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The specified expression is not a member access expression.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyName``1(System.Linq.Expressions.Expression{System.Func{``0}},System.Boolean)">
            <summary>
            Gets the name of the property based on the expression.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">If set to <c>true</c>, nested properties are allowed.</param>
            <returns>The string representing the property name.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The specified expression is not a member access expression.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyName``2(System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean)">
            <summary>
            Gets the name of the property based on the expression.
            </summary>
            <typeparam name="TModel">The type of the model.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">If set to <c>true</c>, nested properties are allowed.</param>
            <returns>The string representing the property name.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The specified expression is not a member access expression.</exception>
        </member>
        <member name="M:Catel.Reflection.PropertyHelper.GetPropertyName(System.Linq.Expressions.Expression,System.Boolean,System.Boolean)">
            <summary>
            Gets the name of the property based on the expression.
            </summary>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">If set to <c>true</c>, nested properties are allowed.</param>
            <param name="nested">If set to <c>true</c>, this is a nested call.</param>
            <returns>The string representing the property name or <see cref="F:System.String.Empty"/> if no property can be found.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The specified expression is not a member access expression.</exception>
        </member>
        <member name="T:Catel.Reflection.StaticHelper">
            <summary>
            Helper class for static classes and members.
            </summary>
        </member>
        <member name="M:Catel.Reflection.StaticHelper.GetCallingType">
            <summary>
            Gets the type which is calling the current method which might be static. 
            </summary>
            <returns>The type calling the method.</returns>
        </member>
        <member name="T:Catel.Reflection.TypeHelper">
            <summary>
            <see cref="T:System.Type"/> helper class.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeHelper.Log">
            <summary>
              The <see cref = "T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeHelper._microsoftPublicKeyTokens">
            <summary>
            A list of microsoft public key tokens.
            </summary>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.#cctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeHelper.MicrosoftPublicKeyTokens">
            <summary>
            Gets the Microsoft public key tokens.
            </summary>
            <value>The Microsoft public key tokens.</value>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetTypedInstance``1(System.Object)">
            <summary>
            Gets the typed instance based on the specified instance.
            </summary>
            <param name="instance">The instance to retrieve in the typed form.</param>
            <returns>The typed instance.</returns>
            <exception cref="T:System.NotSupportedException">The <paramref name="instance"/> cannot be casted to <typeparamref name="TTargetType"/>.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.IsSubclassOfRawGeneric(System.Type,System.Type)">
            <summary>
              Determines whether the subclass is of a raw generic type.
            </summary>
            <param name = "generic">The generic.</param>
            <param name = "toCheck">The type to check.</param>
            <returns>
              <c>true</c> if the subclass is of a raw generic type; otherwise, <c>false</c>.
            </returns>
            <remarks>
            This implementation is based on this forum thread:
            http://stackoverflow.com/questions/457676/c-reflection-check-if-a-class-is-derived-from-a-generic-class
            <para />
            Original license: CC BY-SA 2.5, compatible with the MIT license.
            </remarks>
            <exception cref = "T:System.ArgumentNullException">The <paramref name = "generic" /> is <c>null</c>.</exception>
            <exception cref = "T:System.ArgumentNullException">The <paramref name = "toCheck" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetAssemblyNameWithoutOverhead(System.String)">
            <summary>
            Gets the assembly name without overhead (version, public keytoken, etc)
            </summary>
            <param name="fullyQualifiedAssemblyName">Name of the fully qualified assembly.</param>
            <returns>The assembly without the overhead.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullyQualifiedAssemblyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetAssemblyName(System.String)">
            <summary>
            Gets the name of the assembly.
            </summary>
            <param name="fullTypeName">Full name of the type, for example <c>Catel.TypeHelper, Catel.Core</c>.</param>
            <returns>The assembly name retrieved from the type, for example <c>Catel.Core</c> or <c>null</c> if the assembly is not contained by the type.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullTypeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetTypeNameWithAssembly(System.String)">
            <summary>
            Gets the type name with assembly, but without the fully qualified assembly name. For example, this method provides
            the string:
            <para />
            <c>Catel.TypeHelper, Catel.Core, Version=1.0.0.0, PublicKeyToken=123456789</c>
            <para />
            and will return:
            <para />
            <c>Catel.TypeHelper, Catel.Core</c>
            </summary>
            <param name="fullTypeName">Full name of the type.</param>
            <returns>The type name including the assembly.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullTypeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetTypeName(System.String)">
            <summary>
            Gets the name of the type without the assembly but including the namespace.
            </summary>
            <param name="fullTypeName">Full name of the type, for example <c>Catel.TypeHelper, Catel.Core</c>.</param>
            <returns>The type name retrieved from the type, for example <c>Catel.TypeHelper</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullTypeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetTypeNameWithoutNamespace(System.String)">
            <summary>
            Gets the type name without the assembly namespace.
            </summary>
            <param name="fullTypeName">Full name of the type, for example <c>Catel.TypeHelper, Catel.Core</c>.</param>
            <returns>The type name retrieved from the type, for example <c>TypeHelper</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullTypeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetTypeNamespace(System.String)">
            <summary>
            Gets the type namespace.
            </summary>
            <param name="fullTypeName">Full name of the type, for example <c>Catel.TypeHelper, Catel.Core</c>.</param>
            <returns>The type namespace retrieved from the type, for example <c>Catel</c>.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="fullTypeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.FormatType(System.String,System.String)">
            <summary>
              Formats a type in the official type description like [typename], [assemblyname].
            </summary>
            <param name = "assembly">Assembly name to format.</param>
            <param name = "type">Type name to format.</param>
            <returns>Type name like [typename], [assemblyname].</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="assembly"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="type"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.FormatInnerTypes(System.String[],System.Boolean)">
            <summary>
            Formats multiple inner types into one string.
            </summary>
            <param name="innerTypes">The inner types.</param>
            <param name="stripAssemblies">if set to <c>true</c>, the assembly names will be stripped as well.</param>
            <returns>string representing a combination of all inner types.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.ConvertTypeToVersionIndependentType(System.String,System.Boolean)">
            <summary>
            Converts a string representation of a type to a version independent type by removing the assembly version information.
            </summary>
            <param name="type">Type to convert.</param>
            <param name="stripAssemblies">if set to <c>true</c>, the assembly names will be stripped as well.</param>
            <returns>String representing the type without version information.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="type" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.GetInnerTypes(System.String)">
            <summary>
            Returns the inner type of a type, for example, a generic array type.
            </summary>
            <param name="type">Full type which might contain an inner type.</param>
            <returns>Array of inner types.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="type"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.TryCast``2(``1,``0@)">
            <summary>
              Tries to Generic cast of a value.
            </summary>
            <typeparam name = "TOutput">Requested return type.</typeparam>
            <typeparam name = "TInput">The input type.</typeparam>
            <param name = "value">The value to cast.</param>
            <param name = "output">The casted value.</param>
            <returns>When a cast is succeded true else false.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.Cast``2(``1)">
            <summary>
              Generic cast of a value.
            </summary>
            <typeparam name = "TOutput">Requested return type.</typeparam>
            <typeparam name = "TInput">The input type.</typeparam>
            <param name = "value">The value to cast.</param>
            <returns>The casted value.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.Cast``1(System.Object)">
            <summary>
              Generic cast of a value.
            </summary>
            <typeparam name = "TOutput">Requested return type.</typeparam>
            <param name = "value">The value to cast.</param>
            <returns>The casted value.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeHelper.Cast``2(``1,``0)">
            <summary>
              Generic cast of a value.
            </summary>
            <typeparam name = "TOutput">Requested return type.</typeparam>
            <typeparam name = "TInput">The input type.</typeparam>
            <param name = "value">The value to cast.</param>
            <param name = "whenNullValue">When unable to cast the incoming value, this value is returned instead.</param>
            <returns>The casted value or when uncastable the <paramref name = "whenNullValue" /> is returned.</returns>
        </member>
        <member name="T:Catel.Reflection.IEntryAssemblyResolver">
            <summary>
            Allows custom logic to be injected into <see cref="M:Catel.Reflection.AssemblyHelper.GetEntryAssembly"/>.
            </summary>
        </member>
        <member name="M:Catel.Reflection.IEntryAssemblyResolver.Resolve">
            <summary>
            Resolves the entry assembly.
            </summary>
            <returns>Assembly.</returns>
        </member>
        <member name="T:Catel.Reflection.TypeCache">
            <summary>
            Cache containing the types of an appdomain.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache.Log">
            <summary>
              The <see cref = "T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesByInterface">
            <summary>
            Cache containing all the types implementing a specific interface.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesByAssembly">
            <summary>
            Cache containing all the types by assembly. This means that the first dictionary contains the assembly name
            and all types contained by that assembly.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesWithAssembly">
            <summary>
            Cache containing all the types based on a string. This way, it is easy to retrieve a type based on a 
            string containing the type name and assembly without the overhead, such as <c>Catel.TypeHelper, Catel.Core</c>.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesWithAssemblyLowerCase">
            <summary>
            Cache containing all the types based on a string. This way, it is easy to retrieve a type based on a 
            string containing the type name and assembly without the overhead, such as <c>Catel.TypeHelper, Catel.Core</c>.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesWithoutAssembly">
            <summary>
            Cache containing all the types based without an assembly. This means that a type with this format:
            <c>Catel.TypeHelper, Catel.Core</c> will be located as <c>Catel.TypeHelper</c>.
            <para />
            The values resolved from this dictionary can be used as key in the <see cref="F:Catel.Reflection.TypeCache._typesWithAssembly"/> dictionary.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._typesWithoutAssemblyLowerCase">
            <summary>
            Cache containing all the types based without an assembly. This means that a type with this format:
            <c>Catel.TypeHelper, Catel.Core</c> will be located as <c>Catel.TypeHelper</c>.
            <para />
            The values resolved from this dictionary can be used as key in the <see cref="F:Catel.Reflection.TypeCache._typesWithAssembly"/> dictionary.
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._loadedAssemblies">
            <summary>
            The list of loaded assemblies which do not required additional initialization again.
            <para />
            This is required because the AppDomain.AssemblyLoad might be called several times for the same AppDomain
            </summary>
        </member>
        <member name="F:Catel.Reflection.TypeCache._lockObject">
            <summary>
            The lock object.
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeCache.ShouldIgnoreAssemblyEvaluators">
            <summary>
            Gets the evaluators used to determine whether a specific assembly should be ignored.
            </summary>
            <value>The should ignore assembly function.</value>
        </member>
        <member name="P:Catel.Reflection.TypeCache.ShouldIgnoreTypeEvaluators">
            <summary>
            Gets the evaluators used to determine whether a specific type should be ignored.
            </summary>
            <value>The should ignore assembly function.</value>
        </member>
        <member name="E:Catel.Reflection.TypeCache.AssemblyLoaded">
            <summary>
            Occurs when an assembly is loaded into the currently <see cref="T:System.AppDomain"/>.
            </summary>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypeWithAssembly(System.String,System.String,System.Boolean)">
            <summary>
            Gets the specified type from the loaded assemblies. This is a great way to load types without having
            to know the exact version in Silverlight.
            </summary>
            <param name="typeName">The name of the type including namespace.</param>
            <param name="assemblyName">The name of the type including namespace.</param>
            <param name="ignoreCase">A value indicating whether the case should be ignored.</param>
            <returns>The <see cref="T:System.Type"/> or <c>null</c> if the type cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="typeName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="assemblyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypeWithoutAssembly(System.String,System.Boolean)">
            <summary>
            Gets the type without assembly. For example, when the value <c>Catel.TypeHelper</c> is used as parameter, the type for
            <c>Catel.TypeHelper, Catel.Core</c> will be returned.
            </summary>
            <param name="typeNameWithoutAssembly">The type name without assembly.</param>
            <param name="ignoreCase">A value indicating whether the case should be ignored.</param>
            <returns>The <see cref="T:System.Type"/> or <c>null</c> if the type cannot be found.</returns>
            <remarks>
            Note that this method can only support one type of "simple type name" resolving. For example, if "Catel.TypeHelper" is located in
            multiple assemblies, it will always use the latest known type for resolving the type.
            </remarks>
            <exception cref="T:System.ArgumentException">The <paramref name="typeNameWithoutAssembly"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetType(System.String,System.Boolean)">
            <summary>
            Gets the specified type from the loaded assemblies. This is a great way to load types without having
            to know the exact version in Silverlight.
            </summary>
            <param name="typeNameWithAssembly">The name of the type including namespace and assembly, formatted with the <see cref="M:Catel.Reflection.TypeHelper.FormatType(System.String,System.String)"/> method.</param>
            <param name="ignoreCase">A value indicating whether the case should be ignored.</param>
            <returns>The <see cref="T:System.Type"/> or <c>null</c> if the type cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="typeNameWithAssembly"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetType(System.String,System.String,System.Boolean)">
            <summary>
            Gets the type.
            </summary>
            <param name="typeName">Name of the type.</param>
            <param name="assemblyName">Name of the assembly. Can be <c>null</c> if no assembly is known.</param>
            <param name="ignoreCase">A value indicating whether the case should be ignored.</param>
            <returns>The <see cref="T:System.Type"/> or <c>null</c> if the type cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="typeName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypeBySplittingInternals(System.String)">
            <summary>
            Gets the type by splitting internal types. This means that System.Collections.List`1[[MyCustomType.Item]] will be splitted
            and resolved separately.
            </summary>
            <param name="typeWithInnerTypes">The type with inner types.</param>
            <returns></returns>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypesImplementingInterface(System.Type)">
            <summary>
            Gets the types implementing the specified interface.
            </summary>
            <param name="interfaceType">Type of the interface.</param>
            <returns>Type[].</returns>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypesOfAssembly(System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
            <summary>
            Gets the types of the specified assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <param name="predicate">The predicate to use on the types.</param>
            <returns>All types of the specified assembly.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypes(System.Func{System.Type,System.Boolean})">
            <summary>
            Gets all the types from the current <see cref="T:System.AppDomain"/> where the <paramref name="predicate"/> returns true.
            </summary>
            <param name="predicate">The predicate where the type should apply to.</param>
            <returns>An array containing all the <see cref="T:System.Type"/> that match the predicate.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="predicate"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.GetTypesPrefilteredByAssembly(System.String,System.Func{System.Type,System.Boolean})">
            <summary>
            Gets the types prefiltered by assembly. If types must be retrieved from a single assembly only, this method is very fast.
            </summary>
            <param name="assemblyName">Name of the assembly.</param>
            <param name="predicate">The predicate.</param>
            <returns>System.Type[].</returns>
        </member>
        <member name="M:Catel.Reflection.TypeCache.InitializeTypes(System.Boolean,System.String)">
            <summary>
            Initializes the types in Silverlight. It does this by looping through all loaded assemblies and
            registering the type by type name and assembly name.
            <para/>
            The types initialized by this method are used by <see cref="M:System.Object.GetType"/>.
            </summary>
            <param name="forceFullInitialization">If <c>true</c>, the types are initialized, even when the types are already initialized.</param>
            <param name="assemblyName">Name of the assembly. If <c>null</c>, all assemblies will be checked.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="assemblyName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Reflection.TypeCache.InitializeTypes(System.Boolean,System.Reflection.Assembly)">
            <summary>
            Initializes the types in the specified assembly. It does this by looping through all loaded assemblies and
            registering the type by type name and assembly name.
            <para/>
            The types initialized by this method are used by <see cref="M:System.Object.GetType"/>.
            </summary>
            <param name="forceFullInitialization">If <c>true</c>, the types are initialized, even when the types are already initialized.</param>
            <param name="assembly">The assembly to initialize the types from. If <c>null</c>, all assemblies will be checked.</param>
        </member>
        <member name="M:Catel.Reflection.TypeCache.InitializeTypes(System.Reflection.Assembly,System.Boolean)">
            <summary>
            Initializes the types in the specified assembly. It does this by looping through all loaded assemblies and
            registering the type by type name and assembly name.
            <para/>
            The types initialized by this method are used by <see cref="M:System.Object.GetType"/>.
            </summary>
            <param name="assembly">The assembly to initialize the types from. If <c>null</c>, all assemblies will be checked.</param>
            <param name="forceFullInitialization">If <c>true</c>, the types are initialized, even when the types are already initialized.</param>
        </member>
        <member name="M:Catel.Reflection.TypeCache.ShouldIgnoreAssembly(System.Reflection.Assembly)">
            <summary>
            Determines whether the specified assembly must be ignored by the type cache.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns><c>true</c> if the assembly should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Reflection.TypeCache.ShouldIgnoreType(System.Reflection.Assembly,System.Type)">
            <summary>
            Determines whether the specified type must be ignored by the type cache.
            </summary>
            <param name="assembly">The assembly.</param>
            <param name="type">The type to check.</param>
            <returns><c>true</c> if the type should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Catel.Reflection.TypeInfo">
            <summary>
            The type info.
            </summary>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Reflection.TypeInfo"/> class. 
            </summary>
            <param name="type">
            The type.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> is <c>null</c>.
            </exception>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.Name">
            <summary>
            Gets the name of the current member.
            </summary>
            <returns>
            A <see cref="T:System.String"/> containing the name of this member.
            </returns>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.MetadataToken">
            <summary>
            Gets a value that identifies a metadata element.
            </summary>
            <returns>
            A value which, in combination with <see cref="P:System.Reflection.MemberInfo.Module"/>, uniquely identifies a metadata element.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current <see cref="T:System.Reflection.MemberInfo"/> represents an array method, such 
            as Address, on an array type whose element type is a dynamic type that has not been completed. To get a metadata token in this case, pass 
            the <see cref="T:System.Reflection.MemberInfo"/> object to the <c>System.Reflection.Emit.ModuleBuilder.GetMethodToken(System.Reflection.MethodInfo)</c>
            method; or use the <c>System.Reflection.Emit.ModuleBuilder.GetArrayMethodToken(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[])</c> 
             method to get the token directly, instead of using the <c>System.Reflection.Emit.ModuleBuilder.GetArrayMethod(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[])</c> 
            method to get a <see cref="T:System.Reflection.MethodInfo"/> first.
            </exception>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.DeclaredEvents">
            <summary>
            Gets DeclaredEvents.
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.MemberType">
            <summary>
            Gets a <see cref="T:System.Reflection.MemberTypes"/> value indicating that this member is a type or a nested type.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MemberTypes"/> value indicating that this member is a type or a nested type.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.DeclaringType">
            <summary>
            Gets the type that declares the current nested type or generic type parameter.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing the enclosing type, if the current type is a nested type; or the generic type definition, if the current type is a type parameter of a generic type; or the type that declares the generic method, if the current type is a type parameter of a generic method; otherwise, null.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.DeclaringMethod">
            <summary>
            Gets a <see cref="T:System.Reflection.MethodBase"/> that represents the declaring method, if the current <see cref="T:System.Type"/> represents a type parameter of a generic method.
            </summary>
            <returns>
            If the current <see cref="T:System.Type"/> represents a type parameter of a generic method, a <see cref="T:System.Reflection.MethodBase"/> that represents declaring method; otherwise, null.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.ReflectedType">
            <summary>
            Gets the class object that was used to obtain this member. 
            </summary>
            <returns>
            The Type object through which this MemberInfo object was obtained. 
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.GUID">
            <summary>
            Gets the GUID associated with the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            The GUID associated with the <see cref="T:System.Type"/>.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.Module">
            <summary>
            Gets the module (the DLL) in which the current <see cref="T:System.Type"/> is defined.
            </summary>
            <returns>
            The module in which the current <see cref="T:System.Type"/> is defined.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.Assembly">
            <summary>
            Gets the <see cref="T:System.Reflection.Assembly"/> in which the type is declared. For generic types, gets the <see cref="T:System.Reflection.Assembly"/> in which the generic type is defined.
            </summary>
            <returns>
            An <see cref="T:System.Reflection.Assembly"/> instance that describes the assembly containing the current type. For generic types, the instance describes the assembly that contains the generic type definition, not the assembly that creates and uses a particular constructed type.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.TypeHandle">
            <summary>
            Gets the handle for the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            The handle for the current <see cref="T:System.Type"/>.
            </returns>
            <exception cref="T:System.NotSupportedException">The .NET Compact Framework does not currently support this property.
            </exception><filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.FullName">
            <summary>
            Gets the fully qualified name of the <see cref="T:System.Type"/>, including the namespace of the <see cref="T:System.Type"/> but not the assembly.
            </summary>
            <returns>
            The fully qualified name of the <see cref="T:System.Type"/>, including the namespace of the <see cref="T:System.Type"/> but not the assembly; or null if the current instance represents a generic type parameter, an array type, pointer type, or byref type based on a type parameter, or a generic type that is not a generic type definition but contains unresolved type parameters.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.Namespace">
            <summary>
            Gets the namespace of the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            The namespace of the <see cref="T:System.Type"/>, or null if the current instance represents a generic parameter.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.AssemblyQualifiedName">
            <summary>
            Gets the assembly-qualified name of the <see cref="T:System.Type"/>, which includes the name of the assembly from which the <see cref="T:System.Type"/> was loaded.
            </summary>
            <returns>
            The assembly-qualified name of the <see cref="T:System.Type"/>, which includes the name of the assembly from which the <see cref="T:System.Type"/> was loaded, or null if the current instance represents a generic type parameter.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.BaseType">
            <summary>
            Gets the type from which the current <see cref="T:System.Type"/> directly inherits.
            </summary>
            <returns>
            The <see cref="T:System.Type"/> from which the current <see cref="T:System.Type"/> directly inherits, or null if the current Type represents the <see cref="T:System.Object"/> class or an interface.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNested">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> object represents a type whose definition is nested inside the definition of another type.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested inside another type; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.Attributes">
            <summary>
            Gets the attributes associated with the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.TypeAttributes"/> object representing the attribute set of the <see cref="T:System.Type"/>, unless the <see cref="T:System.Type"/> represents a generic type parameter, in which case the value is unspecified. 
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.GenericParameterAttributes">
            <summary>
            Gets a combination of <see cref="T:System.Reflection.GenericParameterAttributes"/> flags that describe the covariance and special constraints of the current generic type parameter. 
            </summary>
            <returns>
            A bitwise combination of <see cref="T:System.Reflection.GenericParameterAttributes"/> values that describes the covariance and special constraints of the current generic type parameter.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current <see cref="T:System.Type"/> object is not a generic type parameter. That is, the <see cref="P:System.Type.IsGenericParameter"/> property returns false.
            </exception><exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class.
            </exception><filterpriority>1</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsVisible">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> can be accessed by code outside the assembly.
            </summary>
            <returns>
            true if the current <see cref="T:System.Type"/> is a public type or a public nested type such that all the enclosing types are public; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNotPublic">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is not declared public.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is not declared public and is not a nested type; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsPublic">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is declared public.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is declared public and is not a nested type; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedPublic">
            <summary>
            Gets a value indicating whether a class is nested and declared public.
            </summary>
            <returns>
            true if the class is nested and declared public; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedPrivate">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is nested and declared private.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested and declared private; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedFamily">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is nested and visible only within its own family.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested and visible only within its own family; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedAssembly">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is nested and visible only within its own assembly.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested and visible only within its own assembly; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedFamANDAssem">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is nested and visible only to classes that belong to both its own family and its own assembly.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested and visible only to classes that belong to both its own family and its own assembly; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsNestedFamORAssem">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is nested and visible only to classes that belong to either its own family or to its own assembly.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is nested and visible only to classes that belong to its own family or to its own assembly; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsAutoLayout">
            <summary>
            Gets a value indicating whether the class layout attribute AutoLayout is selected for the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the class layout attribute AutoLayout is selected for the <see cref="T:System.Type"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsClass">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is a class; that is, not a value type or interface.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is a class; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsInterface">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an interface; that is, not a class or a value type.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is an interface; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsValueType">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is a value type.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is a value type; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsAbstract">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is abstract and must be overridden.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is abstract; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsSealed">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is declared sealed.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is declared sealed; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsEnum">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> represents an enumeration.
            </summary>
            <returns>
            true if the current <see cref="T:System.Type"/> represents an enumeration; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsSpecialName">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> has a name that requires special handling.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> has a name that requires special handling; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsImport">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> has a <see cref="T:System.Runtime.InteropServices.ComImportAttribute"/> attribute applied, indicating that it was imported from a COM type library.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> has a <see cref="T:System.Runtime.InteropServices.ComImportAttribute"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsSerializable">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is serializable.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is serializable; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsAnsiClass">
            <summary>
            Gets a value indicating whether the string format attribute AnsiClass is selected for the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the string format attribute AnsiClass is selected for the <see cref="T:System.Type"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsUnicodeClass">
            <summary>
            Gets a value indicating whether the string format attribute UnicodeClass is selected for the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the string format attribute UnicodeClass is selected for the <see cref="T:System.Type"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsAutoClass">
            <summary>
            Gets a value indicating whether the string format attribute AutoClass is selected for the <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the string format attribute AutoClass is selected for the <see cref="T:System.Type"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsArray">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is an array.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is an array; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsGenericType">
            <summary>
            Gets a value indicating whether the current type is a generic type.
            </summary>
            <returns>
            true if the current type is a generic type; otherwise, false.
            </returns>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsGenericTypeDefinition">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> represents a generic type definition, from which other generic types can be constructed.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> object represents a generic type definition; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsGenericParameter">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> represents a type parameter in the definition of a generic type or method.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> object represents a type parameter of a generic type definition or generic method definition; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.GenericParameterPosition">
            <summary>
            Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter, when the <see cref="T:System.Type"/> object represents a type parameter of a generic type or a generic method.
            </summary>
            <returns>
            The position of a type parameter in the type parameter list of the generic type or method that defines the parameter. Position numbers begin at 0.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type does not represent a type parameter. That is, <see cref="P:System.Type.IsGenericParameter"/> returns false. 
            </exception><filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.ContainsGenericParameters">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> object has type parameters that have not been replaced by specific types.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> object is itself a generic type parameter or has type parameters for which specific types have not been supplied; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsByRef">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is passed by reference.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is passed by reference; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsPointer">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is a pointer.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is a pointer; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsPrimitive">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is one of the primitive types.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is one of the primitive types; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.IsCOMObject">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Type"/> is a COM object.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is a COM object; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.HasElementType">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Type"/> encompasses or refers to another type; that is, whether the current <see cref="T:System.Type"/> is an array, a pointer, or is passed by reference.
            </summary>
            <returns>
            true if the <see cref="T:System.Type"/> is an array, a pointer, or is passed by reference; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.UnderlyingSystemType">
            <summary>
            Indicates the type provided by the common language runtime that represents this type.
            </summary>
            <returns>
            The underlying system type for the <see cref="T:System.Type"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.DeclaredProperties">
            <summary>
            Gets DeclaredProperties.
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.DeclaredFields">
            <summary>
            Gets DeclaredFields.
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.GenericTypeArguments">
            <summary>
            Gets GenericTypeArguments
            </summary>
        </member>
        <member name="P:Catel.Reflection.TypeInfo.ImplementedInterfaces">
            <summary>
            Gets ImplementedInterfaces
            </summary>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.AsType">
            <summary>
            Gets the type.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetCustomAttributes(System.Boolean)">
            <summary>
            When overridden in a derived class, returns an array containing all the custom attributes.
            </summary>
            <returns>
            An array that contains all the custom attributes, or an array with zero elements if no attributes are defined.
            </returns>
            <param name="inherit">
            Specifies whether to search this member's inheritance chain to find the attributes. 
            </param>
            <exception cref="T:System.InvalidOperationException">
            This member belongs to a type that is loaded into the reflection-only context. See How to: Load Assemblies into the Reflection-Only Context.
            </exception>
            <exception cref="T:System.TypeLoadException">
            A custom attribute type cannot be loaded. 
            </exception>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetCustomAttributes(System.Type,System.Boolean)">
            <summary>
            When overridden in a derived class, returns an array of custom attributes identified by <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied.
            </returns>
            <param name="attributeType">
            The type of attribute to search for. Only attributes that are assignable to this type are returned. 
            </param>
            <param name="inherit">
            Specifies whether to search this member's inheritance chain to find the attributes. 
            </param>
            <exception cref="T:System.TypeLoadException">
            A custom attribute type cannot be loaded. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            If <paramref name="attributeType"/> is null.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            This member belongs to a type that is loaded into the reflection-only context. See How to: Load Assemblies into the Reflection-Only Context.
            </exception>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.IsDefined(System.Type,System.Boolean)">
            <summary>
            When overridden in a derived class, indicates whether one or more instance of <paramref name="attributeType"/> is applied to this member.
            </summary>
            <returns>
            true if one or more instance of <paramref name="attributeType"/> is applied to this member; otherwise false.
            </returns>
            <param name="attributeType">
            The Type object to which the custom attributes are applied. 
            </param>
            <param name="inherit">
            Specifies whether to search this member's inheritance chain to find the attributes. 
            </param>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.MakePointerType">
            <summary>
            Returns a <see cref="T:System.Type"/> object that represents a pointer to the current type.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object that represents a pointer to the current type.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.MakeByRefType">
            <summary>
            Returns a <see cref="T:System.Type"/> object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).
            </returns>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.MakeArrayType">
            <summary>
            Returns a <see cref="T:System.Type"/> object representing a one-dimensional array of the current type, with a lower bound of zero.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing a one-dimensional array of the current type, with a lower bound of zero.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.MakeArrayType(System.Int32)">
            <summary>
            Returns a <see cref="T:System.Type"/> object representing an array of the current type, with the specified number of dimensions.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing an array of the current type, with the specified number of dimensions.
            </returns>
            <param name="rank">
            The number of dimensions for the array. 
            </param>
            <exception cref="T:System.IndexOutOfRangeException">
            <paramref name="rank"/> is invalid. For example, 0 or negative.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])">
            <summary>
            When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> representing the return value of the invoked member.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the constructor, method, property, or field member to invoke.
            -or- 
            An empty string ("") to invoke the default member. 
            -or-
            For IDispatch members, a string representing the DispID, for example "[DispID=3]".
            </param>
            <param name="invokeAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted. The access can be one of the BindingFlags such as Public, NonPublic, Private, InvokeMethod, GetField, and so on. The type of lookup need not be specified. If the type of lookup is omitted, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static are used. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. Note that explicitly defining a <see cref="T:System.Reflection.Binder"/> object may be requird for successfully invoking method overloads with variable arguments.
            </param>
            <param name="target">
            The <see cref="T:System.Object"/> on which to invoke the specified member. 
            </param>
            <param name="args">
            An array containing the arguments to pass to the member to invoke. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="args"/> array. A parameter's associated attributes are stored in the member's signature. 
            The default binder processes this parameter only when calling a COM component. 
            </param>
            <param name="culture">
            The <see cref="T:System.Globalization.CultureInfo"/> object representing the globalization locale to use, which may be necessary for locale-specific conversions, such as converting a numeric String to a Double.
            -or- 
            null to use the current thread's <see cref="T:System.Globalization.CultureInfo"/>. 
            </param>
            <param name="namedParameters">
            An array containing the names of the parameters to which the values in the <paramref name="args"/> array are passed. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="invokeAttr"/> contains CreateInstance and <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="args"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional.
            -or- 
            <paramref name="args"/> and <paramref name="modifiers"/> do not have the same length.
            -or- 
            <paramref name="invokeAttr"/> is not a valid <see cref="T:System.Reflection.BindingFlags"/> attribute.
            -or- 
            <paramref name="invokeAttr"/> does not contain one of the following binding flags: InvokeMethod, CreateInstance, GetField, SetField, GetProperty, or SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains CreateInstance combined with InvokeMethod, GetField, SetField, GetProperty, or SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains both GetField and SetField.
            -or- 
            <paramref name="invokeAttr"/> contains both GetProperty and SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains InvokeMethod combined with SetField or SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains SetField and <paramref name="args"/> has more than one element.
            -or- 
            The named parameter array is larger than the argument array.
            -or- 
            This method is called on a COM object and one of the following binding flags was not passed in: BindingFlags.InvokeMethod, BindingFlags.GetProperty, BindingFlags.SetProperty, BindingFlags.PutDispProperty, or BindingFlags.PutRefDispProperty.
            -or- 
            One of the named parameter arrays contains a string that is null. 
            </exception>
            <exception cref="T:System.MethodAccessException">
            The specified member is a class initializer. 
            </exception>
            <exception cref="T:System.MissingFieldException">
            The field or property cannot be found. 
            </exception>
            <exception cref="T:System.MissingMethodException">
            The method cannot be found.
            -or- 
            The current <see cref="T:System.Type"/> object represents a type that contains open type parameters, that is, <see cref="P:System.Type.ContainsGenericParameters"/> returns true. 
            </exception>
            <exception cref="T:System.Reflection.TargetException">
            The specified member cannot be invoked on <paramref name="target"/>. 
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method matches the binding criteria. 
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The method represented by <paramref name="name"/> has one or more unspecified generic type parameters. That is, the method's <c>ContainsGenericParameters</c> property returns true.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])">
            <summary>
            Invokes the specified member, using the specified binding constraints and matching the specified argument list.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> representing the return value of the invoked member.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the constructor, method, property, or field member to invoke.
            -or- 
            An empty string ("") to invoke the default member. 
            -or-
            For IDispatch members, a string representing the DispID, for example "[DispID=3]".
            </param>
            <param name="invokeAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted. The access can be one of the BindingFlags such as Public, NonPublic, Private, InvokeMethod, GetField, and so on. The type of lookup need not be specified. If the type of lookup is omitted, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static are used. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. Note that explicitly defining a <see cref="T:System.Reflection.Binder"/> object may be requird for successfully invoking method overloads with variable arguments.
            </param>
            <param name="target">
            The <see cref="T:System.Object"/> on which to invoke the specified member. 
            </param>
            <param name="args">
            An array containing the arguments to pass to the member to invoke. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="invokeAttr"/> contains CreateInstance and <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="args"/> is multidimensional.
            -or- 
            <paramref name="invokeAttr"/> is not a valid <see cref="T:System.Reflection.BindingFlags"/> attribute. 
            -or- 
            <paramref name="invokeAttr"/> does not contain one of the following binding flags: InvokeMethod, CreateInstance, GetField, SetField, GetProperty, or SetProperty. 
            -or- 
            <paramref name="invokeAttr"/> contains CreateInstance combined with InvokeMethod, GetField, SetField, GetProperty, or SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains both GetField and SetField.
            -or- 
            <paramref name="invokeAttr"/> contains both GetProperty and SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains InvokeMethod combined with SetField or SetProperty.
            -or- 
            <paramref name="invokeAttr"/> contains SetField and <paramref name="args"/> has more than one element.
            -or- 
            This method is called on a COM object and one of the following binding flags was not passed in: BindingFlags.InvokeMethod, BindingFlags.GetProperty, BindingFlags.SetProperty, BindingFlags.PutDispProperty, or BindingFlags.PutRefDispProperty.
            -or- 
            One of the named parameter arrays contains a string that is null. 
            </exception>
            <exception cref="T:System.MethodAccessException">
            The specified member is a class initializer. 
            </exception>
            <exception cref="T:System.MissingFieldException">
            The field or property cannot be found. 
            </exception>
            <exception cref="T:System.MissingMethodException">
            The method cannot be found.
            -or- 
            The current <see cref="T:System.Type"/> object represents a type that contains open type parameters, that is, <see cref="P:System.Type.ContainsGenericParameters"/> returns true. 
            </exception>
            <exception cref="T:System.Reflection.TargetException">
            The specified member cannot be invoked on <paramref name="target"/>. 
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method matches the binding criteria. 
            </exception>
            <exception cref="T:System.NotSupportedException">
            The .NET Compact Framework does not currently support this method.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The method represented by <paramref name="name"/> has one or more unspecified generic type parameters. That is, the method's <c>ContainsGenericParameters</c> property returns true.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetArrayRank">
            <summary>
            Gets the number of dimensions in an <see cref="T:System.Array"/>.
            </summary>
            <returns>
            An <see cref="T:System.Int32"/> containing the number of dimensions in the current Type.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The functionality of this method is unsupported in the base class and must be implemented in a derived class instead. 
            </exception>
            <exception cref="T:System.ArgumentException">
            The current Type is not an array. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.ConstructorInfo"/> object representing the constructor that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the constructor to get.
            -or- 
            An empty array of the type <see cref="T:System.Type"/> (that is, Type[] types = new Type[0]) to get a constructor that takes no parameters.
            -or- 
            <see cref="F:System.Type.EmptyTypes"/>. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the parameter type array. The default binder does not process this parameter. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional.
            -or- 
            <paramref name="types"/> and <paramref name="modifiers"/> do not have the same length. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetConstructor(System.Type[])">
            <summary>
            Searches for a public instance constructor whose parameters match the types in the specified array.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.ConstructorInfo"/> object representing the public instance constructor whose parameters match the types in the parameter type array, if found; otherwise, null.
            </returns>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the desired constructor.
            -or- 
            An empty array of <see cref="T:System.Type"/> objects, to get a constructor that takes no parameters. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetConstructors">
            <summary>
            Returns all the public constructors defined for the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.ConstructorInfo"/> objects representing all the public instance constructors defined for the current <see cref="T:System.Type"/>, but not including the type initializer (static constructor). If no public instance constructors are defined for the current <see cref="T:System.Type"/>, or if the current <see cref="T:System.Type"/> represents a type parameter in the definition of a generic type or generic method, an empty array of type <see cref="T:System.Reflection.ConstructorInfo"/> is returned.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetConstructors(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the constructors defined for the current <see cref="T:System.Type"/>, using the specified BindingFlags.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.ConstructorInfo"/> objects representing all constructors defined for the current <see cref="T:System.Type"/> that match the specified binding constraints, including the type initializer if it is defined. Returns an empty array of type <see cref="T:System.Reflection.ConstructorInfo"/> if no constructors are defined for the current <see cref="T:System.Type"/>, if none of the defined constructors match the binding constraints, or if the current <see cref="T:System.Type"/> represents a type parameter in the definition of a generic type or generic method.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the method that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the method to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. 
            </param>
            <param name="callConvention">
            The <see cref="T:System.Reflection.CallingConventions"/> object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and how the stack is cleaned up. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the method to get.
            -or- 
            An empty array of <see cref="T:System.Type"/> objects (as provided by the <see cref="F:System.Type.EmptyTypes"/> field) to get a method that takes no parameters. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="types"/> array. To be only used when calling through COM interop, and only parameters that are passed by reference are handled. The default binder does not process this parameter. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and matching the specified binding constraints. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the method that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the method to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the method to get.
            -or- 
            An empty array of <see cref="T:System.Type"/> objects (as provided by the <see cref="F:System.Type.EmptyTypes"/> field) to get a method that takes no parameters. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="types"/> array. To be only used when calling through COM interop, and only parameters that are passed by reference are handled. The default binder does not process this parameter.
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and matching the specified binding constraints. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Type[],System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the method that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
              The <see cref="T:System.String"/> containing the name of the method to get. 
            </param>
            <param name="types">
              An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the method to get.
              -or- 
              An empty array of <see cref="T:System.Type"/> objects (as provided by the <see cref="F:System.Type.EmptyTypes"/> field) to get a method that takes no parameters. 
            </param>
            <param name="bindingAttr">
              A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
              -or- 
              Zero, to return null. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and matching the specified binding constraints. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for the specified public method whose parameters match the specified argument types and modifiers.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the public method that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public method to get. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the method to get.
            -or- 
            An empty array of <see cref="T:System.Type"/> objects (as provided by the <see cref="F:System.Type.EmptyTypes"/> field) to get a method that takes no parameters. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="types"/> array. To be only used when calling through COM interop, and only parameters that are passed by reference are handled. The default binder does not process this parameter.  
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and specified parameters. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Type[])">
            <summary>
            Searches for the specified public method whose parameters match the specified argument types.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the public method whose parameters match the specified argument types, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public method to get. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the method to get.
            -or- 
            An empty array of <see cref="T:System.Type"/> objects to get a method that takes no parameters. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and specified parameters. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            -or- 
            One of the elements in <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String,System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified method, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the method that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the method to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name and matching the specified binding constraints. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethod(System.String)">
            <summary>
            Searches for the public method with the specified name.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.MethodInfo"/> object representing the public method with the specified name, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public method to get. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one method is found with the specified name. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethods">
            <summary>
            Returns all the public methods of the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MethodInfo"/> objects representing all the public methods defined for the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MethodInfo"/>, if no public methods are defined for the current <see cref="T:System.Type"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMethods(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the methods defined for the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MethodInfo"/> objects representing all methods defined for the current <see cref="T:System.Type"/> that match the specified binding constraints.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MethodInfo"/>, if no methods are defined for the current <see cref="T:System.Type"/>, or if none of the defined methods match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetField(System.String,System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified field, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.FieldInfo"/> object representing the field that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the data field to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetField(System.String)">
            <summary>
            Searches for the public field with the specified name.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.FieldInfo"/> object representing the public field with the specified name, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the data field to get. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.NotSupportedException">
            This <see cref="T:System.Type"/> object is a <c>System.Reflection.Emit.TypeBuilder</c> whose <c>System.Reflection.Emit.TypeBuilder.CreateType</c> method has not yet been called. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetFields">
            <summary>
            Returns all the public fields of the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.FieldInfo"/> objects representing all the public fields defined for the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.FieldInfo"/>, if no public fields are defined for the current <see cref="T:System.Type"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetFields(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the fields defined for the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.FieldInfo"/> objects representing all fields defined for the current <see cref="T:System.Type"/> that match the specified binding constraints.
            -or- 
            An empty array of type <see cref="T:System.Reflection.FieldInfo"/>, if no fields are defined for the current <see cref="T:System.Type"/>, or if none of the defined fields match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetInterface(System.String)">
            <summary>
            Searches for the interface with the specified name.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing the interface with the specified name, implemented or inherited by the current <see cref="T:System.Type"/>, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the interface to get. For generic interfaces, this is the mangled name.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            The current <see cref="T:System.Type"/> represents a type that implements the same generic interface with different type arguments. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetInterface(System.String,System.Boolean)">
            <summary>
            When overridden in a derived class, searches for the specified interface, specifying whether to do a case-insensitive search for the interface name.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing the interface with the specified name, implemented or inherited by the current <see cref="T:System.Type"/>, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the interface to get. For generic interfaces, this is the mangled name.
            </param>
            <param name="ignoreCase">
            true to ignore the case of that part of <paramref name="name"/> that specifies the simple interface name (the part that specifies the namespace must be correctly cased).
            -or- 
            false to perform a case-sensitive search for all parts of <paramref name="name"/>. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            The current <see cref="T:System.Type"/> represents a type that implements the same generic interface with different type arguments. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetInterfaces">
            <summary>
            When overridden in a derived class, gets all the interfaces implemented or inherited by the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Type"/> objects representing all the interfaces implemented or inherited by the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Type"/>, if no interfaces are implemented or inherited by the current <see cref="T:System.Type"/>.
            </returns>
            <exception cref="T:System.Reflection.TargetInvocationException">
            A static initializer is invoked and throws an exception. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetEvent(System.String)">
            <summary>
            Returns the <see cref="T:System.Reflection.EventInfo"/> object representing the specified public event.
            </summary>
            <returns>
            The <see cref="T:System.Reflection.EventInfo"/> object representing the specified public event which is declared or inherited by the current <see cref="T:System.Type"/>, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of an event which is declared or inherited by the current <see cref="T:System.Type"/>. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetEvent(System.String,System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, returns the <see cref="T:System.Reflection.EventInfo"/> object representing the specified event, using the specified binding constraints.
            </summary>
            <returns>
            The <see cref="T:System.Reflection.EventInfo"/> object representing the specified event which is declared or inherited by the current <see cref="T:System.Type"/>, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of an event which is declared or inherited by the current <see cref="T:System.Type"/>. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetEvents">
            <summary>
            Returns all the public events that are declared or inherited by the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.EventInfo"/> objects representing all the public events which are declared or inherited by the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.EventInfo"/>, if the current <see cref="T:System.Type"/> does not have public events.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetEvents(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for events that are declared or inherited by the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.EventInfo"/> objects representing all events which are declared or inherited by the current <see cref="T:System.Type"/> that match the specified binding constraints.
            -or- 
            An empty array of type <see cref="T:System.Reflection.EventInfo"/>, if the current <see cref="T:System.Type"/> does not have events, or if none of the events match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the property that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the property to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <param name="binder">
            A <see cref="T:System.Reflection.Binder"/> object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
            -or- 
            null, to use the <see cref="P:System.Type.DefaultBinder"/>. 
            </param>
            <param name="returnType">
            The return type of the property. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the indexed property to get.
            -or- 
            An empty array of the type <see cref="T:System.Type"/> (that is, Type[] types = new Type[0]) to get a property that is not indexed. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="types"/> array. The default binder does not process this parameter. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name and matching the specified binding constraints. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional.
            -or- 
            <paramref name="types"/> and <paramref name="modifiers"/> do not have the same length. 
            </exception>
            <exception cref="T:System.NullReferenceException">
            An element of <paramref name="types"/> is null.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[])">
            <summary>
            Searches for the specified public property whose parameters match the specified argument types and modifiers.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the public property that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public property to get. 
            </param>
            <param name="returnType">
            The return type of the property. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the indexed property to get.
            -or- 
            An empty array of the type <see cref="T:System.Type"/> (that is, Type[] types = new Type[0]) to get a property that is not indexed. 
            </param>
            <param name="modifiers">
            An array of <see cref="T:System.Reflection.ParameterModifier"/> objects representing the attributes associated with the corresponding element in the <paramref name="types"/> array. The default binder does not process this parameter. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name and matching the specified argument types and modifiers. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional.
            -or- 
            <paramref name="modifiers"/> is multidimensional.
            -or- 
            <paramref name="types"/> and <paramref name="modifiers"/> do not have the same length. 
            </exception>
            <exception cref="T:System.NullReferenceException">
            An element of <paramref name="types"/> is null.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String,System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified property, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the property that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the property to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name and matching the specified binding constraints. See Remarks.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String,System.Type,System.Type[])">
            <summary>
            Searches for the specified public property whose parameters match the specified argument types.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the public property whose parameters match the specified argument types, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public property to get. 
            </param>
            <param name="returnType">
            The return type of the property. 
            </param>
            <param name="types">
            An array of <see cref="T:System.Type"/> objects representing the number, order, and type of the parameters for the indexed property to get.
            -or- 
            An empty array of the type <see cref="T:System.Type"/> (that is, Type[] types = new Type[0]) to get a property that is not indexed. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name and matching the specified argument types. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null.
            -or- 
            <paramref name="types"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="types"/> is multidimensional. 
            </exception>
            <exception cref="T:System.NullReferenceException">
            An element of <paramref name="types"/> is null.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String,System.Type)">
            <summary>
            Searches for the public property with the specified name and return type.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the public property with the specified name, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public property to get. 
            </param>
            <param name="returnType">
            The return type of the property. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null, or <paramref name="returnType"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperty(System.String)">
            <summary>
            Searches for the public property with the specified name.
            </summary>
            <returns>
            A <see cref="T:System.Reflection.PropertyInfo"/> object representing the public property with the specified name, if found; otherwise, null.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public property to get. 
            </param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            More than one property is found with the specified name. See Remarks.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperties(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the properties of the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.PropertyInfo"/> objects representing all properties of the current <see cref="T:System.Type"/> that match the specified binding constraints.
            -or- 
            An empty array of type <see cref="T:System.Reflection.PropertyInfo"/>, if the current <see cref="T:System.Type"/> does not have properties, or if none of the properties match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetProperties">
            <summary>
            Returns all the public properties of the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.PropertyInfo"/> objects representing all public properties of the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.PropertyInfo"/>, if the current <see cref="T:System.Type"/> does not have public properties.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetNestedTypes">
            <summary>
            Returns the public types nested in the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Type"/> objects representing the public types nested in the current <see cref="T:System.Type"/> (the search is not recursive), or an empty array of type <see cref="T:System.Type"/> if no public types are nested in the current <see cref="T:System.Type"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetNestedTypes(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the types nested in the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Type"/> objects representing all the types nested in the current <see cref="T:System.Type"/> that match the specified binding constraints (the search is not recursive), or an empty array of type <see cref="T:System.Type"/>, if no nested types are found that match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetNestedType(System.String)">
            <summary>
            Searches for the public nested type with the specified name.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing the public nested type with the specified name, if found; otherwise, null.
            </returns>
            <param name="name">
            The string containing the name of the nested type to get. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetNestedType(System.String,System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing the nested type that matches the specified requirements, if found; otherwise, null.
            </returns>
            <param name="name">
            The string containing the name of the nested type to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMember(System.String)">
            <summary>
            Searches for the public members with the specified name.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing the public members with the specified name, if found; otherwise, an empty array.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the public members to get. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMember(System.String,System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified members, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing the public members with the specified name, if found; otherwise, an empty array.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the members to get. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return an empty array. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)">
            <summary>
            Searches for the specified members of the specified member type, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing the public members with the specified name, if found; otherwise, an empty array.
            </returns>
            <param name="name">
            The <see cref="T:System.String"/> containing the name of the members to get. 
            </param>
            <param name="type">
            The <see cref="T:System.Reflection.MemberTypes"/> value to search for. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return an empty array. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name"/> is null. 
            </exception>
            <exception cref="T:System.NotSupportedException">
            A derived class must provide an implementation. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMembers">
            <summary>
            Returns all the public members of the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing all the public members of the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MemberInfo"/>, if the current <see cref="T:System.Type"/> does not have public members.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetMembers(System.Reflection.BindingFlags)">
            <summary>
            When overridden in a derived class, searches for the members defined for the current <see cref="T:System.Type"/>, using the specified binding constraints.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing all members defined for the current <see cref="T:System.Type"/> that match the specified binding constraints.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MemberInfo"/>, if no members are defined for the current <see cref="T:System.Type"/>, or if none of the defined members match the binding constraints.
            </returns>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetDefaultMembers">
            <summary>
            Searches for the members defined for the current <see cref="T:System.Type"/> whose <see cref="T:System.Reflection.DefaultMemberAttribute"/> is set.
            </summary>
            <returns>
            An array of <see cref="T:System.Reflection.MemberInfo"/> objects representing all default members of the current <see cref="T:System.Type"/>.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MemberInfo"/>, if the current <see cref="T:System.Type"/> does not have default members.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object)">
            <summary>
            Returns a filtered array of <see cref="T:System.Reflection.MemberInfo"/> objects of the specified member type.
            </summary>
            <returns>
            A filtered array of <see cref="T:System.Reflection.MemberInfo"/> objects of the specified member type.
            -or- 
            An empty array of type <see cref="T:System.Reflection.MemberInfo"/>, if the current <see cref="T:System.Type"/> does not have members of type <paramref name="memberType"/> that match the filter criteria.
            </returns>
            <param name="memberType">
            A MemberTypes object indicating the type of member to search for. 
            </param>
            <param name="bindingAttr">
            A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
            -or- 
            Zero, to return null. 
            </param>
            <param name="filter">
            The delegate that does the comparisons, returning true if the member currently being inspected matches the <paramref name="filterCriteria"/> and false otherwise. You can use the FilterAttribute, FilterName, and FilterNameIgnoreCase delegates supplied by this class. The first uses the fields of FieldAttributes, MethodAttributes, and MethodImplAttributes as search criteria, and the other two delegates use String objects as the search criteria. 
            </param>
            <param name="filterCriteria">
            The search criteria that determines whether a member is returned in the array of MemberInfo objects.
            The fields of FieldAttributes, MethodAttributes, and MethodImplAttributes can be used in conjunction with the FilterAttribute delegate supplied by this class. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="filter"/> is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetGenericParameterConstraints">
            <summary>
            Returns an array of <see cref="T:System.Type"/> objects that represent the constraints on the current generic type parameter. 
            </summary>
            <returns>
            An array of <see cref="T:System.Type"/> objects that represent the constraints on the current generic type parameter.
            </returns>
            <exception cref="T:System.InvalidOperationException">
            The current <see cref="T:System.Type"/> object is not a generic type parameter. That is, the <see cref="P:System.Type.IsGenericParameter"/> property returns false.
            </exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.MakeGenericType(System.Type[])">
            <summary>
            Substitutes the elements of an array of types for the type parameters of the current generic type definition and returns a <see cref="T:System.Type"/> object representing the resulting constructed type.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> representing the constructed type formed by substituting the elements of <paramref name="typeArguments"/> for the type parameters of the current generic type.
            </returns>
            <param name="typeArguments">
            An array of types to be substituted for the type parameters of the current generic type.
            </param>
            <exception cref="T:System.InvalidOperationException">
            The current type does not represent a generic type definition. That is, <see cref="P:System.Type.IsGenericTypeDefinition"/> returns false. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="typeArguments"/> is null.
            -or- 
            Any element of <paramref name="typeArguments"/> is null. 
            </exception>
            <exception cref="T:System.ArgumentException">
            The number of elements in <paramref name="typeArguments"/> is not the same as the number of type parameters in the current generic type definition.
            -or- 
            Any element of <paramref name="typeArguments"/> does not satisfy the constraints specified for the corresponding type parameter of the current generic type. 
            </exception>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class. Derived classes must provide an implementation.
            </exception>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetElementType">
            <summary>
            When overridden in a derived class, returns the <see cref="T:System.Type"/> of the object encompassed or referred to by the current array, pointer or reference type.
            </summary>
            <returns>
            The <see cref="T:System.Type"/> of the object encompassed or referred to by the current array, pointer, or reference type, or null if the current <see cref="T:System.Type"/> is not an array or a pointer, or is not passed by reference, or represents a generic type or a type parameter in the definition of a generic type or generic method.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetGenericArguments">
            <summary>
            Returns an array of <see cref="T:System.Type"/> objects that represent the type arguments of a generic type or the type parameters of a generic type definition.
            </summary>
            <returns>
            An array of <see cref="T:System.Type"/> objects that represent the type arguments of a generic type. Returns an empty array if the current type is not a generic type.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetGenericTypeDefinition">
            <summary>
            Returns a <see cref="T:System.Type"/> object that represents a generic type definition from which the current generic type can be constructed.
            </summary>
            <returns>
            A <see cref="T:System.Type"/> object representing a generic type from which the current type can be constructed.
            </returns>
            <exception cref="T:System.InvalidOperationException">
            The current type is not a generic type.  That is, <see cref="P:System.Type.IsGenericType"/> returns false. 
            </exception>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class. Derived classes must provide an implementation.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.IsSubclassOf(System.Type)">
            <summary>
            Determines whether the class represented by the current <see cref="T:System.Type"/> derives from the class represented by the specified <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the Type represented by the <paramref name="c"/> parameter and the current Type represent classes, and the class represented by the current Type derives from the class represented by <paramref name="c"/>; otherwise, false. This method also returns false if <paramref name="c"/> and the current Type represent the same class.
            </returns>
            <param name="c">
            The Type to compare with the current Type. 
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="c"/> parameter is null. 
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.IsInstanceOfType(System.Object)">
            <summary>
            Determines whether the specified object is an instance of the current <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the current Type is in the inheritance hierarchy of the object represented by <paramref name="o"/>, or if the current Type is an interface that <paramref name="o"/> supports. false if neither of these conditions is the case, or if <paramref name="o"/> is null, or if the current Type is an open generic type (that is, <see cref="P:System.Type.ContainsGenericParameters"/> returns true).
            </returns>
            <param name="o">
            The object to compare with the current Type. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.IsAssignableFrom(System.Type)">
            <summary>
            Determines whether an instance of the current <see cref="T:System.Type"/> can be assigned from an instance of the specified Type.
            </summary>
            <returns>
            true if <paramref name="c"/> and the current Type represent the same type, or if the current Type is in the inheritance hierarchy of <paramref name="c"/>, or if the current Type is an interface that <paramref name="c"/> implements, or if <paramref name="c"/> is a generic type parameter and the current Type represents one of the constraints of <paramref name="c"/>. false if none of these conditions are true, or if <paramref name="c"/> is null.
            </returns>
            <param name="c">
            The Type to compare with the current Type. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.IsAssignableFrom(Catel.Reflection.TypeInfo)">
            <summary>
            The is assignable from.
            </summary>
            <param name="typeInfo">
            The type info.
            </param>
            <returns>
            The is assignable from.
            </returns>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.Equals(System.Type)">
            <summary>
            Determines if the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/> is the same as the underlying system type of the specified <see cref="T:System.Type"/>.
            </summary>
            <returns>
            true if the underlying system type of <paramref name="o"/> is the same as the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/>; otherwise, false.
            </returns>
            <param name="o">
            The <see cref="T:System.Type"/> whose underlying system type is to be compared with the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/>. 
            </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.Equals(Catel.Reflection.TypeInfo)">
            <summary>
            Determines if the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/> is the same as the underlying system type of the specified <see cref="T:Catel.Reflection.TypeInfo"/>.
            </summary>
            <param name="o">
            The <see cref="T:Catel.Reflection.TypeInfo"/> whose underlying system type is to be compared with the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/>. 
            </param>
            <returns>
            true if the underlying system type of <paramref name="o"/> is the same as the underlying system type of the current <see cref="T:Catel.Reflection.TypeInfo"/>; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Catel.Reflection.TypeInfo.GetInterfaceMap(System.Type)">
            <summary>
            Returns an interface mapping for the specified interface type.
            </summary>
            <returns>
            An <see cref="T:System.Reflection.InterfaceMapping"/> object representing the interface mapping for <paramref name="interfaceType"/>.
            </returns>
            <param name="interfaceType">
            The <see cref="T:System.Type"/> of the interface of which to retrieve a mapping. 
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="interfaceType"/> parameter does not refer to an interface. 
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="interfaceType"/> is null. 
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The current <see cref="T:System.Type"/> represents a generic type parameter; that is, <see cref="P:System.Type.IsGenericParameter"/> is true.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The invoked method is not supported in the base class. Derived classes must provide an implementation.
            </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Catel.Runtime.ReferenceEqualityComparer`1">
            <summary>
            Equality comparer for by reference.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
        </member>
        <member name="M:Catel.Runtime.ReferenceEqualityComparer`1.Equals(`0,`0)">
            <summary>
            Determines whether the specified objects are equal.
            </summary>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>true if the specified objects are equal; otherwise, false.</returns>
        </member>
        <member name="M:Catel.Runtime.ReferenceEqualityComparer`1.GetHashCode(`0)">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> for which a hash code is to be returned.</param>
            <returns>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.</returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="T:Catel.Runtime.ReferenceInfo">
            <summary>
            Info about a reference which can provide a unique reference.
            </summary>
        </member>
        <member name="M:Catel.Runtime.ReferenceInfo.#ctor(System.Object,System.Int32,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.ReferenceInfo" /> class.
            </summary>
            <param name="instance">The instance.</param>
            <param name="id">The unique identifier.</param>
            <param name="isFirstUsage">if set to <c>true</c>, this is the first usage of this instance.</param>
        </member>
        <member name="P:Catel.Runtime.ReferenceInfo.Instance">
            <summary>
            Gets the instance.
            </summary>
            <value>The instance.</value>
        </member>
        <member name="P:Catel.Runtime.ReferenceInfo.Id">
            <summary>
            Gets the unique identifier.
            </summary>
            <value>The unique identifier.</value>
        </member>
        <member name="P:Catel.Runtime.ReferenceInfo.IsFirstUsage">
            <summary>
            Gets a value indicating whether this is the first usage of this instance.
            </summary>
            <value><c>true</c> if this instance is the first usage of this instance; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:Catel.Runtime.ReferenceManager">
            <summary>
            Class responsible for managing identifiers for circular dependencies.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager.DefaultReferenceEqualityComparer">
            <summary>
            The default reference equality comparer.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager._referenceInfoByInstance">
            <summary>
            The dictionary containing the actualy information by object reference.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager._referenceInfoById">
            <summary>
            The dictionary containing the actualy information by id.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager._lock">
            <summary>
            The thread-lock object.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager._counter">
            <summary>
            The counter which is increased every time an instance is added.
            </summary>
        </member>
        <member name="F:Catel.Runtime.ReferenceManager._usedIds">
            <summary>
            The hashset containing the used ids.
            </summary>
        </member>
        <member name="M:Catel.Runtime.ReferenceManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.ReferenceManager"/> class.
            </summary>
        </member>
        <member name="P:Catel.Runtime.ReferenceManager.Count">
            <summary>
            Gets the number of items in the reference manager.
            </summary>
            <value>The number of items.</value>
        </member>
        <member name="M:Catel.Runtime.ReferenceManager.RegisterManually(System.Int32,System.Object)">
            <summary>
            Registers the specified instance manually.
            </summary>
            <param name="id">The unique identifier.</param>
            <param name="instance">The instance.</param>
        </member>
        <member name="M:Catel.Runtime.ReferenceManager.GetInfo(System.Object)">
            <summary>
            Gets the info for the specified instance.
            </summary>
            <param name="instance">The instance.</param>
            <returns>The <see cref="T:Catel.Runtime.ReferenceInfo" /> or <c>null</c> if <paramref name="instance" /> is <c>null</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.ReferenceManager.GetInfoById(System.Int32)">
            <summary>
            Gets the information by the unique identifier.
            </summary>
            <param name="id">The unique identifier.</param>
            <returns>The <see cref="T:Catel.Runtime.ReferenceInfo" /> or <c>null</c> if the id is not found.</returns>
        </member>
        <member name="M:Catel.Runtime.ReferenceManager.GetInfoAt(System.Int32)">
            <summary>
            Gets the info at the specified index.
            </summary>
            <param name="index">The index.</param>
            <returns>The <see cref="T:Catel.Runtime.ReferenceInfo"/>.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.ExcludeFromSerializationAttribute">
            <summary>
            Attribute to define that a specific member must be excluded from the serialization by the serialization engine.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.IncludeInSerializationAttribute">
            <summary>
            Attribute to define that a specific member must be included in the serialization by the serialization engine.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.IncludeInSerializationAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.IncludeInSerializationAttribute"/> class.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.IncludeInSerializationAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.IncludeInSerializationAttribute"/> class.
            </summary>
            <param name="name">Name of the member.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.IncludeInSerializationAttribute.Name">
            <summary>
            Gets or sets the name of the mapped.
            </summary>
            <value>The name of the mapped.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializeAsCollectionAttribute">
            <summary>
            Attribute to inform the serializers in Catel to serialize the object as collection.
            <para />
            This can only be used on ModelBase classes that implement <see cref="T:System.Collections.Generic.IList`1"/>.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializerModifierAttribute">
            <summary>
            Attribute to specify the serialization modifier attribute.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierAttribute.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializerModifierAttribute"/> class.
            </summary>
            <param name="serializerModifierType">Type of the serializer modifier.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializerModifierAttribute.SerializerModifierType">
            <summary>
            Gets the type of the serializer modifier.
            </summary>
            <value>The type of the serializer modifier.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.CacheInvalidatedEventArgs">
            <summary>
            Event args for when a type cache has been invalidated.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.CacheInvalidatedEventArgs.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.CacheInvalidatedEventArgs"/> class.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.CacheInvalidatedEventArgs.Type">
            <summary>
            Gets the type that was invalidated.
            </summary>
            <value>The type.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.MemberSerializationEventArgs">
            <summary>
            Special member value serialization event args.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.MemberSerializationEventArgs.#ctor(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.MemberSerializationEventArgs" /> class.
            </summary>
            <param name="serializationContext">The serialization context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberSerializationEventArgs.MemberValue">
            <summary>
            Gets the member value.
            </summary>
            <value>The member value.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationEventArgs">
            <summary>
            The serialization event args.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationEventArgs.#ctor(Catel.Runtime.Serialization.ISerializationContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializationEventArgs"/> class.
            </summary>
            <param name="serializationContext">The serialization context.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationEventArgs.SerializationContext">
            <summary>
            Gets the serialization context.
            </summary>
            <value>The serialization context.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationContextExtensions">
            <summary>
            Extension methods for the serialization context.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationContextExtensions.FindParentType(Catel.Runtime.Serialization.ISerializationContext,System.Func{System.Type,System.Boolean},System.Int32)">
            <summary>
            Tries to find the parent type in the object graph.
            </summary>
            <param name="serializationContext">The serialization context.</param>
            <param name="predicate">The predicate.</param>
            <param name="maxLevels">The maximum number of levels to check. If <c>-1</c>, will check all up to the root.</param>
            <returns>The type or <c>null</c> of the type is not found.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializerExtensions">
            <summary>
            ISerializer extensions.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerExtensions.Deserialize``1(Catel.Runtime.Serialization.ISerializer,System.IO.Stream)">
            <summary>
            Deserializes the specified stream into the model.
            </summary>
            <typeparam name="TModel">The type of the t model.</typeparam>
            <param name="serializer">The serializer.</param>
            <param name="stream">The stream.</param>
            <returns>The deserialized model.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializer"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationContextHelper">
            <summary>
            Helper class for serialization.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationContextHelper.GetSerializationReferenceManagerScopeName">
            <summary>
            Gets the name of the serialization reference manager scope.
            </summary>
            <returns>The name of the scope.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.IObjectAdapter">
            <summary>
            Adapter to interact with objects.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.IObjectAdapter.GetMemberValue(System.Object,System.String,Catel.Runtime.Serialization.SerializationModelInfo)">
            <summary>
            Gets the member value.
            </summary>
            <param name="model">The model.</param>
            <param name="memberName">Name of the member.</param>
            <param name="modelInfo">The model information.</param>
            <returns>MemberValue.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.IObjectAdapter.SetMemberValue(System.Object,Catel.Runtime.Serialization.MemberValue,Catel.Runtime.Serialization.SerializationModelInfo)">
            <summary>
            Sets the member value.
            </summary>
            <param name="model">The model.</param>
            <param name="member">The member.</param>
            <param name="modelInfo">The model information.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.IPropertySerializable">
            <summary>
            Fast serialization interaction. By default the serialization engine uses reflection to get and set values. To improve
            performance, once can implement this interface.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.IPropertySerializable.GetPropertyValue(System.String,System.Object@)">
            <summary>
            Gets the property value.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <returns><c>true</c> if the value is retrieved successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.IPropertySerializable.SetPropertyValue(System.String,System.Object)">
            <summary>
            Sets the property value.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
            <returns><c>true</c> if the value is set successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.IFieldSerializable">
            <summary>
            Fast serialization interaction. By default the serialization engine uses reflection to get and set values. To improve
            performance, once can implement this interface.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.IFieldSerializable.GetFieldValue(System.String,System.Object@)">
            <summary>
            Gets the field value.
            </summary>
            <param name="fieldName">Name of the field.</param>
            <param name="value">The value.</param>
            <returns><c>true</c> if the value is retrieved successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.IFieldSerializable.SetFieldValue(System.String,System.Object)">
            <summary>
            Sets the field value.
            </summary>
            <param name="fieldName">Name of the field.</param>
            <param name="value">The value.</param>
            <returns><c>true</c> if the value is set successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.IModelBaseSerializer">
            <summary>
            Interface definition to serialize the <see cref="T:Catel.Data.IModel"/>.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.IModelBaseSerializer`1">
            <summary>
            Interface definition to serialize the <see cref="T:Catel.Data.IModel"/>.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializable">
            <summary>
            Additional features for serializable objects.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializable.Serialized">
            <summary>
            Occurs when the object has been serialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializable.Deserialized">
            <summary>
            Occurs when the object has been deserialized.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializable.StartSerialization">
            <summary>
            Starts the serialization.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializable.FinishSerialization">
            <summary>
            Finishes the serialization.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializable.StartDeserialization">
            <summary>
            Starts the deserialization.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializable.FinishDeserialization">
            <summary>
            Finishes the deserialization.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationContextMode">
            <summary>
            The mode in which a context is being used.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationContextMode.Serialization">
            <summary>
            The context is being used for serialization.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationContextMode.Deserialization">
            <summary>
            The context is being used for deserialization.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationContext">
            <summary>
            Interface for the serialization context used to serialize and deserialize models.
            </summary>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.Model">
            <summary>
            Gets the model that needs serialization or deserialization.
            </summary>
            <value>The model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.ModelType">
            <summary>
            Gets the type of the model.
            </summary>
            <value>The type of the model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.ModelTypeName">
            <summary>
            Gets the name of the model type, which should be a cached version of <c>ModelType.GetSafeFullName();</c>.
            </summary>
            <value>The name of the model type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.Depth">
            <summary>
            Gets the depth of the current element being processed.
            </summary>
            <value>The depth.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.ContextMode">
            <summary>
            Gets the context mode.
            </summary>
            <value>The context mode.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.ReferenceManager">
            <summary>
            Gets the reference manager.
            </summary>
            <value>The reference manager.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext.TypeStack">
            <summary>
            Gets the type stack inside the current scope.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationContext`1">
            <summary>
            Interface for the serialization context used to serialize and deserialize models.
            </summary>
            <typeparam name="TSerializationContext">The type of the serialization context.</typeparam>
        </member>
        <member name="P:Catel.Runtime.Serialization.ISerializationContext`1.Context">
            <summary>
            Gets the context.
            </summary>
            <value>The context.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationContextInfoFactory">
            <summary>
            Factory responsible for the serialization context info.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationContextInfoFactory.GetSerializationContextInfo(Catel.Runtime.Serialization.ISerializer,System.Object,System.Object)">
            <summary>
            Gets the serialization context based on the specific info.
            </summary>
            <param name="serializer">The serializer.</param>
            <param name="model">The model.</param>
            <param name="data">The data.</param>
            <returns>ISerializationContext.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationContextInfo">
            <summary>
            Serialization context info.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializationManager">
            <summary>
            Manager which is responsible for discovering what fields and properties of an object should be serialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializationManager.CacheInvalidated">
            <summary>
            Occurs when the cache for a specific type has been invalidated.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.Warmup(System.Type)">
            <summary>
            Warmups the specified type by calling all the methods for the specified type.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.Clear(System.Type)">
            <summary>
            Clears the specified type from cache so it will be evaluated.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetFieldsToSerialize(System.Type)">
            <summary>
            Gets the fields to serialize for the specified object.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of fields to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetCatelPropertiesToSerialize(System.Type)">
            <summary>
            Gets the Catel properties to serialize for the specified object.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of properties to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetRegularPropertiesToSerialize(System.Type)">
            <summary>
            Gets the regular properties to serialize for the specified object.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of properties to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetCatelPropertyNames(System.Type,System.Boolean)">
            <summary>
            Gets the catel property names.
            </summary>
            <param name="type">Type of the model.</param>
            <param name="includeModelBaseProperties">if set to <c>true</c>, also include model base properties.</param>
            <returns>A hash set containing the Catel property names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetCatelProperties(System.Type,System.Boolean)">
            <summary>
            Gets the catel properties.
            </summary>
            <param name="type">Type of the model.</param>
            <param name="includeModelBaseProperties">if set to <c>true</c>, also include model base properties.</param>
            <returns>A hash set containing the Catel properties.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetRegularPropertyNames(System.Type)">
            <summary>
            Gets the regular property names.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the regular property names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetRegularProperties(System.Type)">
            <summary>
            Gets the regular properties.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the regular properties.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetFieldNames(System.Type)">
            <summary>
            Gets the field names.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the field names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetFields(System.Type)">
            <summary>
            Gets the fields.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the fields.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializationManager.GetSerializerModifiers(System.Type)">
            <summary>
            Gets the serializer modifiers for the specified type.
            <para />
            Note that the order is important because the modifiers will be called in the returned order during serialization
            and in reversed order during deserialization.
            </summary>
            <param name="type">The type.</param>
            <returns>An array containing the modifiers. Never <c>null</c>, but can be an empty array.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializer">
            <summary>
            Interface definition to serialize the <see cref="T:Catel.Data.IModel"/>.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.Serializing">
            <summary>
            Occurs when an object is about to be serialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.SerializingMember">
            <summary>
            Occurs when an object is about to serialize a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.SerializedMember">
            <summary>
            Occurs when an object has just serialized a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.Serialized">
            <summary>
            Occurs when an object has just been serialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.Deserializing">
            <summary>
            Occurs when an object is about to be deserialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.DeserializingMember">
            <summary>
            Occurs when an object is about to deserialize a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.DeserializedMember">
            <summary>
            Occurs when an object has just deserialized a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.ISerializer.Deserialized">
            <summary>
            Occurs when an object has just been deserialized.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Warmup(System.Collections.Generic.IEnumerable{System.Type},System.Int32)">
            <summary>
            Warms up the specified types. If the <paramref name="types" /> is <c>null</c>, all types known
            in the <see cref="T:Catel.Reflection.TypeCache" /> deriving from the <see cref="T:Catel.Data.ModelBase"/> class will be initialized.
            <para />
            Note that it is not required to call this, but it can help to prevent an additional performance
            impact the first time a type is serialized.
            </summary>
            <param name="types">The types to warmp up. If <c>null</c>, all types will be initialized.</param>
            <param name="typesPerThread">The types per thread. If <c>-1</c>, all types will be initialized on the same thread.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Serialize(System.Object,System.IO.Stream)">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Serialize(System.Object,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="serializationContext">The serialization context.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.SerializeMembers(System.Object,System.IO.Stream,System.String[])">
            <summary>
            Serializes the members.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
            <param name="membersToIgnore">The members to ignore.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="membersToIgnore"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Deserialize(System.Object,System.IO.Stream)">
            <summary>
            Deserializes the specified model. The deserialized values will be set in the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
            <returns>The deserialized model.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Deserialize(System.Object,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the specified model. The deserialized values will be set in the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="serializationContext">The context.</param>
            <returns>The deserialized model.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Deserialize(System.Type,System.IO.Stream)">
            <summary>
            Deserializes the specified model type.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <returns>The deserialized model.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.Deserialize(System.Type,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the specified model type.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializationContext">The serialization context.</param>
            <returns>The deserialized model.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.DeserializeMembers(System.Type,System.IO.Stream)">
            <summary>
            Deserializes the members of the specified model.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <returns>The list of members that have been deserialized.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializer.DeserializeMembers(System.Type,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the members of the specified model.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializationContext">The serialization context.</param>
            <returns>The list of members that have been deserialized.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationContext"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.ISerializerModifier">
            <summary>
            Allows modifications for a specific model for every supported serializer.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.ShouldIgnoreMember(Catel.Runtime.Serialization.ISerializationContext,System.Object,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Determines whether the specified member should be ignored.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the property should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.OnSerializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.SerializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Allows the customization of the provided <see cref="T:Catel.Runtime.Serialization.MemberValue"/>.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.OnSerialized(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.OnDeserializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.DeserializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Allows the customization of the provided <see cref="T:Catel.Runtime.Serialization.MemberValue"/>.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.ISerializerModifier.OnDeserialized(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.MemberMetadata">
            <summary>
            Metadata about a member of a type.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.MemberMetadata.#ctor(System.Type,System.Type,Catel.Runtime.Serialization.SerializationMemberGroup,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.MemberMetadata" /> class.
            </summary>
            <param name="containingType">Type of the containing.</param>
            <param name="memberType">Type of the member.</param>
            <param name="memberGroup">The member group.</param>
            <param name="memberName">Name of the member.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.ContainingType">
            <summary>
            Gets the type of the containing.
            </summary>
            <value>The type of the containing.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.MemberType">
            <summary>
            Gets the type of the member.
            </summary>
            <value>The type of the member.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.MemberGroup">
            <summary>
            Gets the member group.
            </summary>
            <value>The member group.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.MemberName">
            <summary>
            Gets the name of the member.
            </summary>
            <value>The name of the member.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.MemberNameForSerialization">
            <summary>
            Gets or sets the member name for serialization. This is a name mapped based on attributes
            like DataMember("something"), etc.
            </summary>
            <value>The member name for serialization.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberMetadata.Tag">
            <summary>
            Gets or sets the tag.
            </summary>
            <value>The tag.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationMemberGroup">
            <summary>
            Enum representing all member group.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.CatelProperty">
            <summary>
            The member is a catel property.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.RegularProperty">
            <summary>
            The member is a regular property.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.Field">
            <summary>
            The member is a field.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.SimpleRootObject">
            <summary>
            The member is a simple root object, must be handled by external serializer immediately.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.Collection">
            <summary>
            The member is a collection.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationMemberGroup.Dictionary">
            <summary>
            The member is a dictionary.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.MemberValue">
            <summary>
            Member value which represents the serialization info of a specific member.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.MemberValue.#ctor(Catel.Runtime.Serialization.SerializationMemberGroup,System.Type,System.Type,System.String,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.MemberValue" /> class.
            </summary>
            <param name="memberGroup">Group of the member.</param>
            <param name="modelType">Type of the model.</param>
            <param name="memberType">Type of the member.</param>
            <param name="name">The name.</param>
            <param name="nameForSerialization">The name for serialization.</param>
            <param name="value">The value.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.MemberGroup">
            <summary>
            Gets the group of the member.
            </summary>
            <value>The group of the member.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.ModelType">
            <summary>
            Gets the type of the model which this member value is a member of.
            </summary>
            <value>The type of the model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.ModelTypeName">
            <summary>
            Gets the name of the model type, which should be a cached version of <c>ModelType.GetSafeFullName();</c>.
            </summary>
            <value>The name of the model type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.MemberType">
            <summary>
            Gets the type of the member.
            <para />
            This is the actual member type as it is defined on the type. This is <c>not</c> a wrapper around
            the <c>value.GetType()</c>.
            </summary>
            <value>The type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.MemberTypeName">
            <summary>
            Gets the name of the model type, which should be a cached version of <c>ModelType.GetSafeFullName();</c>.
            </summary>
            <value>The name of the model type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.ActualMemberType">
            <summary>
            Gets the actual type of the value.
            </summary>
            <value>The actual type of the value.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.Name">
            <summary>
            Gets the name of the member.
            </summary>
            <value>The name.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.NameForSerialization">
            <summary>
            Gets or sets the name for serialization. This is a name mapped based on attributes
            like DataMember("something"), etc.
            </summary>
            <value>The name for serialization.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.MemberValue.Value">
            <summary>
            Gets or sets the value.
            </summary>
            <value>The value.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.MemberValue.GetBestMemberType">
            <summary>
            Gets the the best member type. Code is equal to <c>memberValue.ActualMemberType ?? memberValue.MemberType</c>.
            </summary>
            <returns>Type.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializableKeyValuePair">
            <summary>
            Serializable key value pair.
            </summary>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializableKeyValuePair.Key">
            <summary>
            Gets or sets the key.
            </summary>
            <value>The key.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializableKeyValuePair.KeyType">
            <summary>
            Gets or sets the type of the key.
            </summary>
            <value>The type of the key.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializableKeyValuePair.Value">
            <summary>
            Gets or sets the value.
            </summary>
            <value>The value.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializableKeyValuePair.ValueType">
            <summary>
            Gets or sets the type of the value.
            </summary>
            <value>The type of the value.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.KeyValuePairSerializerModifier">
            <summary>
            Serializer modifier that supports key value pairs automatically.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.KeyValuePairSerializerModifier.SerializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Serializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.KeyValuePairSerializerModifier.DeserializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Deserializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.ObjectAdapter">
            <summary>
            Adapter to interact with objects.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.ObjectAdapter.GetMemberValue(System.Object,System.String,Catel.Runtime.Serialization.SerializationModelInfo)">
            <summary>
            Gets the member value.
            </summary>
            <param name="model">The model.</param>
            <param name="memberName">Name of the member.</param>
            <param name="modelInfo">The model information.</param>
            <returns>MemberValue.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.ObjectAdapter.SetMemberValue(System.Object,Catel.Runtime.Serialization.MemberValue,Catel.Runtime.Serialization.SerializationModelInfo)">
            <summary>
            Sets the member value.
            </summary>
            <param name="model">The model.</param>
            <param name="member">The member.</param>
            <param name="modelInfo">The model information.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationContext`1">
            <summary>
            The serialization context used to serialize and deserialize models.
            </summary>
            <typeparam name="TContext">The type of the context.</typeparam>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationContext`1.#ctor(System.Object,System.Type,`0,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializationContext`1" /> class.
            </summary>
            <param name="model">The model, can be <c>null</c> for value types.</param>
            <param name="modelType">Type of the model.</param>
            <param name="context">The context.</param>
            <param name="contextMode">The context mode.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="context" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.Model">
            <summary>
            Gets or sets the model that needs serialization or deserialization.
            </summary>
            <value>The model.</value>
            <remarks>
            Only set the model if you know what you are doing. In most (99.9%), you want to serializer to take care of this.
            </remarks>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.ModelType">
            <summary>
            Gets the type of the model.
            </summary>
            <value>The type of the model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.ModelTypeName">
            <summary>
            Gets the name of the model type, which should be a cached version of <c>ModelType.GetSafeFullName();</c>.
            </summary>
            <value>The name of the model type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.Depth">
            <summary>
            Gets the depth of the current element being processed.
            </summary>
            <value>The depth.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.TypeStack">
            <summary>
            Gets the type stack inside the current scope.
            </summary>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.ContextMode">
            <summary>
            Gets the context mode.
            </summary>
            <value>The context mode.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.Context">
            <summary>
            Gets the context.
            </summary>
            <value>The context.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationContext`1.ReferenceManager">
            <summary>
            Gets the reference manager.
            </summary>
            <value>The reference manager.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationContext`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationFactory">
            <summary>
            Factory responsible to create serializers. Internally this will query the <see cref="T:Catel.IoC.ServiceLocator"/>
            the retrieve the registered serializers.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationFactory.GetXmlSerializer">
            <summary>
            Gets the XML serializer.
            </summary>
            <returns>The registered <see cref="T:Catel.Runtime.Serialization.Xml.IXmlSerializer"/>.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationInfoSerializationContextInfo">
            <summary>
            Class containing all information about the serialization info (.NET only) serialization context.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationInfoSerializationContextInfo.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializationInfoSerializationContextInfo"/> class.
            </summary>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationInfoSerializationContextInfo.MemberValues">
            <summary>
            Gets the member values.
            </summary>
            <value>The member values.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationInfoSerializationContextInfo.PropertyValues">
            <summary>
            Gets the property values.
            </summary>
            <value>The property values.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationManager">
            <summary>
            Manager which is responsible for discovering what fields and properties of an object should be serialized.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializationManager.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializationManager.CacheInvalidated">
            <summary>
            Occurs when the cache for a specific type has been invalidated.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.Warmup(System.Type)">
            <summary>
            Warmups the specified type by calling all the methods for the specified type.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.Clear(System.Type)">
            <summary>
            Clears the specified type from cache so it will be evaluated.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetFieldsToSerialize(System.Type)">
            <summary>
            Gets the fields to serialize for the specified object.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of fields to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetCatelPropertiesToSerialize(System.Type)">
            <summary>
            Gets the catel properties to serialize.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of properties to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetRegularPropertiesToSerialize(System.Type)">
            <summary>
            Gets the properties to serialize for the specified object.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of properties to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetCatelPropertyNames(System.Type,System.Boolean)">
            <summary>
            Gets the catel property names.
            </summary>
            <param name="type">Type of the model.</param>
            <param name="includeModelBaseProperties">if set to <c>true</c>, also include model base properties.</param>
            <returns>A hash set containing the Catel property names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetCatelProperties(System.Type,System.Boolean)">
            <summary>
            Gets the catel properties.
            </summary>
            <param name="type">Type of the model.</param>
            <param name="includeModelBaseProperties">if set to <c>true</c>, also include model base properties.</param>
            <returns>A hash set containing the Catel properties.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetRegularPropertyNames(System.Type)">
            <summary>
            Gets the regular property names.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the regular property names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetRegularProperties(System.Type)">
            <summary>
            Gets the regular properties.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the regular properties.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetFieldNames(System.Type)">
            <summary>
            Gets the field names.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the field names.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetFields(System.Type)">
            <summary>
            Gets the fields
            </summary>
            <param name="type">Type of the model.</param>
            <returns>A hash set containing the fields.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.GetSerializerModifiers(System.Type)">
            <summary>
            Gets the serializer modifiers for the specified type.
            <para />
            Note that the order is important because the modifiers will be called in the returned order during serialization
            and in reversed order during deserialization.
            </summary>
            <param name="type">The type.</param>
            <returns>An array containing the modifiers. Never <c>null</c>, but can be an empty array.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationManager.FindSerializerModifiers(System.Type)">
            <summary>
            Finds the serializer modifiers.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of modifier attributes found.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationModelInfo">
            <summary>
            Class that contains info about serializable models.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationModelInfo.#ctor(System.Type,System.Collections.Generic.Dictionary{System.String,Catel.Runtime.Serialization.MemberMetadata},System.Collections.Generic.Dictionary{System.String,Catel.Runtime.Serialization.MemberMetadata},System.Collections.Generic.Dictionary{System.String,Catel.Runtime.Serialization.MemberMetadata})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializationModelInfo"/> class.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="catelProperties">The catel properties.</param>
            <param name="fields">The fields.</param>
            <param name="regularProperties">The properties.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.ModelType">
            <summary>
            Gets the type of the model.
            </summary>
            <value>The type of the model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.CatelPropertyNames">
            <summary>
            Gets the catel property names.
            </summary>
            <value>The catel property names.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.CatelProperties">
            <summary>
            Gets the catel properties.
            </summary>
            <value>The catel properties.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.CatelPropertiesByName">
            <summary>
            Gets the Catel properties by name.
            </summary>
            <value>The Catel properties by name.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.FieldNames">
            <summary>
            Gets the field names.
            </summary>
            <value>The field names.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.Fields">
            <summary>
            Gets the fields.
            </summary>
            <value>The fields.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.FieldsByName">
            <summary>
            Gets the fields by name.
            </summary>
            <value>The fields by name.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.PropertyNames">
            <summary>
            Gets the property names.
            </summary>
            <value>The property names.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.Properties">
            <summary>
            Gets the properties.
            </summary>
            <value>The properties.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationModelInfo.PropertiesByName">
            <summary>
            Gets the properties by name.
            </summary>
            <value>The properties by name.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializationObject">
            <summary>
            Class containing information about a (de)serialized value.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationObject.#ctor(System.Type,Catel.Runtime.Serialization.SerializationMemberGroup,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializationObject" /> class.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="memberGroup">Group of the member.</param>
            <param name="memberName">Name of the member.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationObject.ModelType">
            <summary>
            Gets the type of the model.
            </summary>
            <value>The type of the model.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationObject.MemberGroup">
            <summary>
            Gets the group of the member.
            </summary>
            <value>The group of the member.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationObject.MemberName">
            <summary>
            Gets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationObject.MemberValue">
            <summary>
            Gets the member value.
            </summary>
            <value>The member value.</value>
            <exception cref="T:System.InvalidOperationException">The <see cref="P:Catel.Runtime.Serialization.SerializationObject.IsSuccessful"/> is false and this member cannot be used.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializationObject.IsSuccessful">
            <summary>
            Gets or sets a value indicating whether this instance is successful.
            </summary>
            <value><c>true</c> if this instance is successful; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationObject.FailedToDeserialize(System.Type,Catel.Runtime.Serialization.SerializationMemberGroup,System.String)">
            <summary>
            Creates an instance of the <see cref="T:Catel.Runtime.Serialization.SerializationObject" /> which represents a failed deserialized value.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="memberGroup">Type of the member.</param>
            <param name="memberName">Name of the member.</param>
            <returns>SerializationObject.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="memberName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializationObject.SucceededToDeserialize(System.Type,Catel.Runtime.Serialization.SerializationMemberGroup,System.String,System.Object)">
            <summary>
            Creates an instance of the <see cref="T:Catel.Runtime.Serialization.SerializationObject" /> which represents a succeeded deserialized value.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="memberGroup">Type of the member.</param>
            <param name="memberName">Name of the property.</param>
            <param name="memberValue">The member value.</param>
            <returns>SerializationObject.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="memberName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializerBase`1">
            <summary>
            Base class for all serializers.
            </summary>
            <summary>
            Base class for serializers that can serialize any object.
            </summary>
            <typeparam name="TSerializationContext">The type of the T serialization context.</typeparam>
            <summary>
            Base class for all serializers.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.Serializing">
            <summary>
            Occurs when an object is about to be serialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.SerializingMember">
            <summary>
            Occurs when an object is about to serialize a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.SerializedMember">
            <summary>
            Occurs when an object has just serialized a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.Serialized">
            <summary>
            Occurs when an object has just been serialized.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.BeforeDeserialization(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Called before the serializer starts deserializing an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.BeforeDeserializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Called before the serializer starts deserializing a specific member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.DeserializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Deserializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns>The <see cref="T:Catel.Runtime.Serialization.SerializationObject" /> representing the deserialized value or result.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.AfterDeserializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Called after the serializer has deserialized a specific member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.AfterDeserialization(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Called after the serializer has deserialized an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Object,System.IO.Stream)">
            <summary>
            Deserializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Object,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="serializationContext">The serialization context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Object,`0)">
            <summary>
            Deserializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="serializationContext">The serialization context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Object,Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Deserializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="context">The serialization context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Type,System.IO.Stream)">
            <summary>
            Deserializes the specified model type.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <returns>The deserialized <see cref="T:System.Object"/>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Type,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the specified model type.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializationContext">The serialization context.</param>
            <returns>The deserialized <see cref="T:System.Object"/>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Deserialize(System.Type,`0)">
            <summary>
            Deserializes the specified model type.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializationContext">The serialization context.</param>
            <returns>The deserialized <see cref="T:System.Object"/>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.DeserializeMembers(System.Type,System.IO.Stream)">
            <summary>
            Deserializes the members.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <returns>The deserialized list of member values.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.DeserializeMembers(System.Type,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Deserializes the members.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializedContext">The serialized context.</param>
            <returns>The deserialized list of member values.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.DeserializeMembers(System.Type,`0)">
            <summary>
            Deserializes the members.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="serializedContext">The serialized context.</param>
            <returns>The deserialized list of member values.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.DeserializeMembers(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Deserializes the members.
            </summary>
            <param name="context">The context.</param>
            <returns>The deserialized list of member values.</returns>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializerBase`1.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializerBase`1.ApiCop">
            <summary>
            The API cop.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializerBase`1.RootObjectName">
            <summary>
            The root object name.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializerBase`1.CollectionName">
            <summary>
            The collection name.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.SerializerBase`1.DictionaryName">
            <summary>
            The dictionary name.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Runtime.Serialization.SerializerBase`1"/> class.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.#ctor(Catel.Runtime.Serialization.ISerializationManager,Catel.IoC.ITypeFactory,Catel.Runtime.Serialization.IObjectAdapter)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.SerializerBase`1" /> class.
            </summary>
            <param name="serializationManager">The serialization manager.</param>
            <param name="typeFactory">The type factory.</param>
            <param name="objectAdapter">The object adapter.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationManager" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializerBase`1.SerializationManager">
            <summary>
            Gets the serialization manager.
            </summary>
            <value>The serialization manager.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializerBase`1.TypeFactory">
            <summary>
            Gets the type factory.
            </summary>
            <value>The type factory.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.SerializerBase`1.ObjectAdapter">
            <summary>
            Gets the object adapter.
            </summary>
            <value>The object adapter.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetSerializableMembers(Catel.Runtime.Serialization.ISerializationContext{`0},System.Object,System.String[])">
            <summary>
            Gets the serializable members for the specified model.
            </summary>
            <param name="context">The serialization context.</param>
            <param name="model">The model.</param>
            <param name="membersToIgnore">The members to ignore.</param>
            <returns>The list of members to serialize.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.OnSerializationManagerCacheInvalidated(System.Object,Catel.Runtime.Serialization.CacheInvalidatedEventArgs)">
            <summary>
            Handles the <see cref="E:SerializationManagerCacheInvalidated" /> event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:Catel.Runtime.Serialization.CacheInvalidatedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Warmup(System.Collections.Generic.IEnumerable{System.Type},System.Int32)">
            <summary>
            Warms up the specified types. If the <paramref name="types" /> is <c>null</c>, all types known
            in the <see cref="T:Catel.Reflection.TypeCache" /> will be initialized.
            <para />
            Note that it is not required to call this, but it can help to prevent an additional performance
            impact the first time a type is serialized.
            </summary>
            <param name="types">The types to warmp up. If <c>null</c>, all types will be initialized.</param>
            <param name="typesPerThread">The types per thread. If <c>-1</c>, all types will be initialized on the same thread.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Warmup(System.Type)">
            <summary>
            Warms up the specified type.
            </summary>
            <param name="type">The type to warmup.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldIgnoreMember(System.Object,System.String)">
            <summary>
            Determines whether the specified member on the specified model should be ignored by the serialization engine.
            </summary>
            <param name="model">The model.</param>
            <param name="propertyName">Name of the member.</param>
            <returns><c>true</c> if the member should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetContext(System.Type,`0,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Gets the context for the specified model type.
            <para />
            Use this method when no model instance is available. This method will create one.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="context">The context.</param>
            <param name="contextMode">The context mode.</param>
            <returns>The serialization context.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="context" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetContext(System.Type,System.IO.Stream,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Gets the context for the specified model type.
            <para />
            Use this method when no model instance is available. This method will create one.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <param name="contextMode">The context mode.</param>
            <returns>The serialization context.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetContext(System.Object,System.Type,`0,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Gets the context for the specified model instance.
            </summary>
            <param name="model">The model, can be <c>null</c> for value types.</param>
            <param name="modelType">Type of the model.</param>
            <param name="context">The context.</param>
            <param name="contextMode">The context mode.</param>
            <returns>The serialization context.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="context" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetContext(System.Object,System.Type,System.IO.Stream,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Gets the context.
            </summary>
            <param name="model">The model, can be <c>null</c> for value types.</param>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <param name="contextMode">The context mode.</param>
            <returns>The serialization context.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="stream" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.AppendContextToStream(Catel.Runtime.Serialization.ISerializationContext{`0},System.IO.Stream)">
            <summary>
            Appends the serialization context to the specified stream. This way each serializer can handle the serialization
            its own way and write the contents to the stream via this method.
            </summary>
            <param name="context">The context.</param>
            <param name="stream">The stream.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.PopulateModel(System.Object,Catel.Runtime.Serialization.MemberValue[])">
            <summary>
            Populates the model with the specified members.
            </summary>
            <param name="model">The model.</param>
            <param name="members">The members.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="members"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetMemberGroup(System.Type,System.String)">
            <summary>
            Gets the member group.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="memberName">Name of the member.</param>
            <returns>The <see cref="T:Catel.Runtime.Serialization.SerializationMemberGroup"/>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.GetMemberType(System.Type,System.String)">
            <summary>
            Gets the type of the member.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="memberName">Name of the member.</param>
            <returns>The <see cref="T:System.Type"/> of the member.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldSerializeModelAsCollection(System.Type)">
            <summary>
            Returns whether the model should be serialized as collection. Note that this method will
            return <c>false</c> if the method does not derive from <c>ModelBase</c>.
            </summary>
            <param name="memberType">Type of the member.</param>
            <returns><c>true</c> if the model should be serialized as a collection, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldSerializeAsCollection(Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Returns whether the member value should be serialized as collection.
            </summary>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the member value should be serialized as collection, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldSerializeAsCollection(System.Type)">
            <summary>
            Returns whether the member value should be serialized as collection.
            </summary>
            <param name="memberType">Type of the member.</param>
            <returns><c>true</c> if the member value should be serialized as collection, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldSerializeAsDictionary(Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Returns whether the member value should be serialized as dictionary.
            </summary>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the member value should be serialized as dictionary, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldSerializeAsDictionary(System.Type)">
            <summary>
            Returns whether the member value should be serialized as dictionary.
            </summary>
            <param name="memberType">Type of the member.</param>
            <returns><c>true</c> if the member value should be serialized as dictionary, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ConvertDictionaryToCollection(System.Object)">
            <summary>
            Converts a dictionary into a serializable collection.
            </summary>
            <param name="memberValue">The member value.</param>
            <returns>The list of serializable key value pairs.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldExternalSerializerHandleMember(Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Returns whether json.net should handle the member.
            <para />
            By default it only handles non-class types.
            </summary>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if json.net should handle the type, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.ShouldExternalSerializerHandleMember(System.Type)">
            <summary>
            Returns whether json.net should handle the member.
            <para />
            By default it only handles non-class types.
            </summary>
            <param name="memberType">Type of the member.</param>
            <returns><c>true</c> if json.net should handle the type, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.CreateModelInstance(System.Type)">
            <summary>
            Creates the model instance. When a type is an array or IEnumerable, this will use a collection as model instance.
            </summary>
            <param name="type">Type of the model.</param>
            <returns>The instantiated type.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.IsRootDictionary(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Determines whether the specified member value is a root dictionary.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the specified member value is a root dictionary; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.IsRootCollection(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Determines whether the specified member value is a root collection.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the specified member value is a root collection; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.IsRootObject(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue,System.Func{Catel.Runtime.Serialization.MemberValue,System.Boolean})">
            <summary>
            Determines whether the specified member value is a root object.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <param name="predicate">The predicate.</param>
            <returns><c>true</c> if the specified member value is a root object; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.SupportsDictionarySerialization(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Supportses the dictionary serialization.
            </summary>
            <param name="context">The context.</param>
            <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.Deserializing">
            <summary>
            Occurs when an object is about to be deserialized.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.DeserializingMember">
            <summary>
            Occurs when an object is about to deserialize a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.DeserializedMember">
            <summary>
            Occurs when an object has just deserialized a specific member.
            </summary>
        </member>
        <member name="E:Catel.Runtime.Serialization.SerializerBase`1.Deserialized">
            <summary>
            Occurs when an object has just been deserialized.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Serialize(System.Object,System.IO.Stream)">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Serialize(System.Object,Catel.Runtime.Serialization.ISerializationContextInfo)">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Serialize(System.Object,`0)">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.Serialize(System.Object,Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Serializes the specified model.
            </summary>
            <param name="model">The model.</param>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.SerializeMembers(System.Object,System.IO.Stream,System.String[])">
            <summary>
            Serializes the members.
            </summary>
            <param name="model">The model.</param>
            <param name="stream">The stream.</param>
            <param name="membersToIgnore">The members to ignore.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.BeforeSerialization(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Called before the serializer starts serializing an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.BeforeSerializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Called before the serializer starts serializing a specific member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.SerializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Serializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns>The deserialized member value.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.AfterSerializeMember(Catel.Runtime.Serialization.ISerializationContext{`0},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Called after the serializer has serialized a specific member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.AfterSerialization(Catel.Runtime.Serialization.ISerializationContext{`0})">
            <summary>
            Called after the serializer has serialized an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerBase`1.SerializeMembers(Catel.Runtime.Serialization.ISerializationContext{`0},System.Collections.Generic.List{Catel.Runtime.Serialization.MemberValue})">
            <summary>
            Serializes the members.
            </summary>
            <param name="context">The context.</param>
            <param name="membersToSerialize">The members to serialize.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializerModifierBase">
            <summary>
            Allows modifications for a specific model for every supported serializer.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.ShouldIgnoreMember(Catel.Runtime.Serialization.ISerializationContext,System.Object,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Determines whether the specified member should be ignored.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
            <param name="memberValue">The member value.</param>
            <returns><c>true</c> if the property should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.OnSerializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.SerializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Allows the customization of the provided <see cref="T:Catel.Runtime.Serialization.MemberValue"/>.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.OnSerialized(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.OnDeserializing(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is about to be deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.DeserializeMember(Catel.Runtime.Serialization.ISerializationContext,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Allows the customization of the provided <see cref="T:Catel.Runtime.Serialization.MemberValue"/>.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns>The final <see cref="T:Catel.Runtime.Serialization.MemberValue"/> that will be deserialized.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase.OnDeserialized(Catel.Runtime.Serialization.ISerializationContext,System.Object)">
            <summary>
            Called when the object is deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.SerializerModifierBase`1">
            <summary>
            Allows modifications for a specific model for every supported serializer.
            </summary>
            <typeparam name="TModel">The type of the model.</typeparam>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase`1.OnSerializing(Catel.Runtime.Serialization.ISerializationContext,`0)">
            <summary>
            Called when the object is about to be serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase`1.OnSerialized(Catel.Runtime.Serialization.ISerializationContext,`0)">
            <summary>
            Called when the object is serialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase`1.OnDeserializing(Catel.Runtime.Serialization.ISerializationContext,`0)">
            <summary>
            Called when the object is about to be deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.SerializerModifierBase`1.OnDeserialized(Catel.Runtime.Serialization.ISerializationContext,`0)">
            <summary>
            Called when the object is deserialized.
            </summary>
            <param name="context">The context.</param>
            <param name="model">The model.</param>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory">
            <summary>
            Default implementation of the <see cref="T:Catel.Runtime.Serialization.Xml.IDataContractSerializerFactory" /> interface.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.Log">
            <summary>
            The <see cref="T:Catel.Logging.ILog">log</see> object.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory._dataContractSerializersCache">
            <summary>
            Cache for the <see cref="T:System.Runtime.Serialization.DataContractSerializer"/> per name.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory._knownTypesByAttributesCache">
            <summary>
            Cache for known attributes per type.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory"/> class.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetDataContractSerializer(System.Type,System.Type,System.String,System.String,System.Object,System.Collections.Generic.List{System.Type})">
            <summary>
            Gets the Data Contract serializer for a specific type. This method caches serializers so the
            performance can be improved when a serializer is used more than once.
            </summary>
            <param name="serializingType">The type that is currently (de)serializing.</param>
            <param name="typeToSerialize">The type to (de)serialize.</param>
            <param name="xmlName">Name of the property as known in XML.</param>
            <param name="rootNamespace">The root namespace.</param>
            <param name="serializingObject">The object to create the serializer for. When the object is not <c>null</c>, the types that are
            a child object of this object are added to the known types of the serializer.</param>
            <param name="additionalKnownTypes">A list of additional types to add to the known types.</param>
            <returns><see cref="T:System.Runtime.Serialization.DataContractSerializer" /> for the given type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializingType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToSerialize" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetDataContractSerializer(System.Type,System.Type,System.String,System.String,System.Collections.Generic.List{System.Type})">
            <summary>
            Gets the Data Contract serializer for a specific type. This method caches serializers so the
            performance can be improved when a serializer is used more than once.
            </summary>
            <param name="serializingType">The type that is currently (de)serializing.</param>
            <param name="typeToSerialize">The type to (de)serialize.</param>
            <param name="xmlName">Name of the property as known in XML.</param>
            <param name="rootNamespace">The root namespace.</param>
            <param name="additionalKnownTypes">A list of additional types to add to the known types.</param>
            <returns><see cref="T:System.Runtime.Serialization.DataContractSerializer" /> for the given type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializingType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToSerialize" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetKnownTypesForInstance(System.Object,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Gets the known types for a specific object instance.
            </summary>
            <param name="obj">The object to retrieve the known types for.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <returns>Array of <see cref="T:System.Type"/> that are found in the object instance.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetKnownTypes(System.Type,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo,System.Boolean)">
            <summary>
            Gets the known types inside the specific type.
            </summary>
            <param name="type">The type.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <param name="resolveAbstractClassesAndInterfaces">if set to <c>true</c> [resolve abstract classes and interfaces].</param>
            <returns>Array of <see cref="T:System.Type" /> that are found in the object type.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetKnownTypesForItems(System.Type,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Gets the known types of IEnumerable type.
            </summary>
            <param name="type">The type.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <returns>Array of <see cref="T:System.Type"/> that are found in the object type.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetKnownTypesForItemsInstance(System.Object,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Gets the known types of IEnumerable instance.
            </summary>
            <param name="obj">The object.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <returns>Array of <see cref="T:System.Type"/> that are found in the object type.</returns>  
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.IsTypeSerializable(System.Type,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Determines whether the specified type is serializable.
            </summary>
            <param name="type">The type.</param>
            <param name="serializerTypeInfo">The serializer type information.</param>
            <returns><c>true</c> if the specified type is serializable; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.ShouldTypeBeIgnored(System.Type,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Determines whether the type should be handled.
            </summary>
            <param name="type">The type.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <returns><c>true</c> if the type should be handled; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.GetKnownTypesViaAttributes(System.Type)">
            <summary>
            Gets the known types via attributes.
            </summary>
            <param name="type">The type.</param>
            <returns>The list of known types via the <see cref="T:System.Runtime.Serialization.KnownTypeAttribute"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.AddTypeToKnownTypesIfSerializable(System.Type,Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo)">
            <summary>
            Adds the type to the known types if the type is serializable.
            </summary>
            <param name="typeToAdd">The type to add.</param>
            <param name="serializerTypeInfo">The serializer type info.</param>
            <returns><c>true</c> if the type is serializable; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.AllowNonPublicReflection(System.Type)">
            <summary>
            Returns whether non-public reflection is allowed on the specified type.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if non-public reflection is allowed, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo">
            <summary>
            Class containing serializer type info.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.#ctor(System.Type,System.Type,System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo" /> class.
            </summary>
            <param name="serializingType">Type of the serializing.</param>
            <param name="typeToSerialize">The type to serialize.</param>
            <param name="additionalKnownTypes">The additional known types.</param>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.SerializingType">
            <summary>
            Gets the serializing type.
            </summary>
            <value>The serializing type.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.TypeToSerialize">
            <summary>
            Gets the type to serialize.
            </summary>
            <value>The type to serialize.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.KnownTypes">
            <summary>
            Gets the known types.
            </summary>
            <value>The known types.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.TypesAlreadyHandled">
            <summary>
            Gets the types already handled.
            </summary>
            <value>The types already handled.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.SpecialCollectionTypes">
            <summary>
            Gets the special collection types.
            </summary>
            <value>The special collection types.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.SpecialGenericCollectionTypes">
            <summary>
            Gets the special generic collection types.
            </summary>
            <value>The special generic collection types.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.AddKnownType(System.Type)">
            <summary>
            Adds the type to the list of known types.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.ContainsKnownType(System.Type)">
            <summary>
            Determines whether the specified type is a known type.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is known type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.AddTypeAsHandled(System.Type)">
            <summary>
            Adds the type as handled.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.IsTypeAlreadyHandled(System.Type)">
            <summary>
            Determines whether the specified type is already handled, which doesn't mean that it is also
            a known type. It means that the type has already been inspected once.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the type is already handled; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.AddCollectionAsHandled(System.Type)">
            <summary>
            Adds the collection type as handled.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.IsCollectionAlreadyHandled(System.Type)">
            <summary>
            Determines whether the specified collection type is already handled.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the collection type is already handled; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.IsSpecialCollectionType(System.Type)">
            <summary>
            Determines whether the specified type is a special .NET collection type which should be
            added to the serialization known types.
            <para />
            All generic collections in the <c>System.Collections.Generic</c> namespace are considered
            special. Besides these classes, the <c>ObservableCollection{T}</c> is also considered
            special.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is a special collection type; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.DataContractSerializerFactory.XmlSerializerTypeInfo.IsTypeSerializable(System.Type)">
            <summary>
            Determines whether the specified type is serializable.
            </summary>
            <param name="type">The type.</param>
            <returns><c>true</c> if the specified type is serializable; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlHelper">
            <summary>
            Helper class for xml serialization.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.XmlHelper.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlHelper.ConvertToXml(System.String,System.Type,System.Object)">
            <summary>
            Converts a value to an xml element.
            </summary>
            <param name="elementName">Name of the element.</param>
            <param name="objectType">Type of the object.</param>
            <param name="objectValue">The object value.</param>
            <returns>The created <see cref="T:System.Xml.Linq.XElement"/>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlHelper.ConvertToObject(System.Xml.Linq.XElement,System.Type,System.Func{System.Object})">
            <summary>
            Converts the specified xml element to an object.
            </summary>
            <param name="element">The element.</param>
            <param name="objectType">Type of the object.</param>
            <param name="createDefaultValue">The create default value.</param>
            <returns>The created object.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.IDataContractSerializerFactory">
            <summary>
            Interface defining a factory to create <see cref="T:System.Runtime.Serialization.DataContractSerializer"/> objects for specific types.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.IDataContractSerializerFactory.GetDataContractSerializer(System.Type,System.Type,System.String,System.String,System.Object,System.Collections.Generic.List{System.Type})">
            <summary>
            Gets the Data Contract serializer for a specific type. This method caches serializers so the
            performance can be improved when a serializer is used more than once.
            </summary>
            <param name="serializingType">The type that is currently (de)serializing.</param>
            <param name="typeToSerialize">The type to (de)serialize.</param>
            <param name="xmlName">Name of the property as known in XML.</param>
            <param name="rootNamespace">The root namespace.</param>
            <param name="serializingObject">The object to create the serializer for. When the object is not <c>null</c>, the types that are
            a child object of this object are added to the known types of the serializer.</param>
            <param name="additionalKnownTypes">A list of additional types to add to the known types.</param>
            <returns><see cref="T:System.Runtime.Serialization.DataContractSerializer" /> for the given type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializingType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToSerialize" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.IDataContractSerializerFactory.GetDataContractSerializer(System.Type,System.Type,System.String,System.String,System.Collections.Generic.List{System.Type})">
            <summary>
            Gets the Data Contract serializer for a specific type. This method caches serializers so the
            performance can be improved when a serializer is used more than once.
            </summary>
            <param name="serializingType">The type that is currently (de)serializing.</param>
            <param name="typeToSerialize">The type to (de)serialize.</param>
            <param name="xmlName">Name of the property as known in XML.</param>
            <param name="rootNamespace">The root namespace.</param>
            <param name="additionalKnownTypes">A list of additional types to add to the known types.</param>
            <returns><see cref="T:System.Runtime.Serialization.DataContractSerializer" /> for the given type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializingType" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="typeToSerialize" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="xmlName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.IXmlNamespaceManager">
            <summary>
            Manages the xml namespaces for a specific type.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.IXmlNamespaceManager.GetNamespace(System.Type,System.String)">
            <summary>
            Gets the namespace for the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="preferredPrefix">The preferred prefix.</param>
            <returns>The xml namespace.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="preferredPrefix"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode">
            <summary>
            Possible xml serializer optimalization modes
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode.PrettyXml">
            <summary>
            If pretty xml is required (for display reasons), pick this one.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode.PrettyXmlAgressive">
            <summary>
            If pretty xml is required (for display reasons), pick this one. This will remove all namespaces instead of only the root ones.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode.Performance">
            <summary>
            If duplicate namespaces are irrelevant, pick this for speed.
            </summary>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.IXmlSerializer">
            <summary>
            Interface for the xml serializer.
            </summary>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.IXmlSerializer.OptimalizationMode">
            <summary>
            Gets or sets the optimalization mode.
            <para />
            The default value is <see cref="F:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode.Performance"/>.
            </summary>
            <value>The optimalization mode.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfoFactory">
            <summary>
            Xml serialization context factory.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfoFactory.GetSerializationContextInfo(Catel.Runtime.Serialization.ISerializer,System.Object,System.Object)">
            <summary>
            Gets the serialization context information.
            </summary>
            <param name="serializer">The serializer.</param>
            <param name="model">The model.</param>
            <param name="data">The data.</param>
            <returns>ISerializationContext.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlNamespace">
            <summary>
            Contains information about an xml namespace.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlNamespace.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.XmlNamespace"/> class.
            </summary>
            <param name="prefix">The prefix.</param>
            <param name="uri">The URI.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="prefix"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="uri"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.XmlNamespace.Prefix">
            <summary>
            Gets the prefix.
            </summary>
            <value>The prefix.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.XmlNamespace.Uri">
            <summary>
            Gets the URI.
            </summary>
            <value>The URI.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlNamespace.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>A <see cref="T:System.String" /> that represents this instance.</returns>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlNamespaceManager">
            <summary>
            Manages the namespaces based on the current serialization scope.
            </summary>
            <remarks>
            Note that this class is not thread-safe. Serialization on it's own is not thread-safe because serialization
            of a single object should happen on the same thread.
            </remarks>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlNamespaceManager.GetNamespace(System.Type,System.String)">
            <summary>
            Gets the namespace for the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="preferredPrefix">The preferred prefix.</param>
            <returns>The xml namespace.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="preferredPrefix"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo">
            <summary>
            Class containing all information about the binary serialization context.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo.#ctor(System.Xml.Linq.XElement,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo" /> class.
            </summary>
            <param name="element">The element.</param>
            <param name="model">The model, is allowed to be null for value types.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="element" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo.#ctor(System.Xml.XmlReader,Catel.Data.ModelBase)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo" /> class.
            </summary>
            <param name="xmlReader">The XML reader.</param>
            <param name="model">The model.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="xmlReader" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo.#ctor(System.String,Catel.Data.ModelBase)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo"/> class.
            </summary>
            <param name="xmlContent">Content of the XML.</param>
            <param name="model">The model.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="xmlContent" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="model" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo.Element">
            <summary>
            Gets the element.
            </summary>
            <value>The element.</value>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo.Model">
            <summary>
            Gets the model.
            </summary>
            <value>The model.</value>
        </member>
        <member name="T:Catel.Runtime.Serialization.Xml.XmlSerializer">
            <summary>
            The xml serializer.
            </summary>
        </member>
        <member name="F:Catel.Runtime.Serialization.Xml.XmlSerializer.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.#ctor(Catel.Runtime.Serialization.ISerializationManager,Catel.Runtime.Serialization.Xml.IDataContractSerializerFactory,Catel.Runtime.Serialization.Xml.IXmlNamespaceManager,Catel.IoC.ITypeFactory,Catel.Runtime.Serialization.IObjectAdapter)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Runtime.Serialization.Xml.XmlSerializer" /> class.
            </summary>
            <param name="serializationManager">The serialization manager.</param>
            <param name="dataContractSerializerFactory">The data contract serializer factory.</param>
            <param name="xmlNamespaceManager">The XML namespace manager.</param>
            <param name="typeFactory">The type factory.</param>
            <param name="objectAdapter">The object adapter.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="serializationManager" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataContractSerializerFactory" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="xmlNamespaceManager" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Runtime.Serialization.Xml.XmlSerializer.OptimalizationMode">
            <summary>
            Gets or sets the optimalization mode.
            <para />
            The default value is <see cref="F:Catel.Runtime.Serialization.Xml.XmlSerializerOptimalizationMode.Performance"/>.
            </summary>
            <value>The optimalization mode.</value>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.Warmup(System.Type)">
            <summary>
            Warms up the specified type.
            </summary>
            <param name="type">The type to warmup.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.BeforeSerialization(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo})">
            <summary>
            Called before the serializer starts serializing an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.BeforeDeserialization(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo})">
            <summary>
            Called before the serializer starts deserializing an object.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.SerializeMember(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Serializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.DeserializeMember(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo},Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Deserializes the member.
            </summary>
            <param name="context">The context.</param>
            <param name="memberValue">The member value.</param>
            <returns>The <see cref="T:Catel.Runtime.Serialization.SerializationObject"/> representing the deserialized value or result.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.ShouldIgnoreMember(System.Object,System.String)">
            <summary>
            Determines whether the specified member on the specified model should be ignored by the serialization engine.
            </summary>
            <param name="model">The model.</param>
            <param name="propertyName">Name of the member.</param>
            <returns><c>true</c> if the member should be ignored, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.AppendContextToStream(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo},System.IO.Stream)">
            <summary>
            Appends the context to stream.
            </summary>
            <param name="context">The context.</param>
            <param name="stream">The stream.</param>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetXmlElementName(System.Type,System.Object,System.String)">
            <summary>
            Gets the name of the xml element.
            </summary>
            <param name="modelType">Type of the model.</param>
            <param name="model">The model.</param>
            <param name="memberName">Name of the member.</param>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.OptimizeXDocument(System.Xml.Linq.XDocument)">
            <summary>
            Optimizes the xml document.
            </summary>
            <param name="document">The document.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.OptimizeXElement(System.Xml.Linq.XElement)">
            <summary>
            Optimizes the xml element.
            </summary>
            <param name="element">The element.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetContext(System.Object,System.Type,System.IO.Stream,Catel.Runtime.Serialization.SerializationContextMode)">
            <summary>
            Gets the context.
            </summary>
            <param name="model">The model.</param>
            <param name="modelType">Type of the model.</param>
            <param name="stream">The stream.</param>
            <param name="contextMode">The context mode.</param>
            <returns>The serialization context.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetObjectFromXmlAttribute(System.Xml.Linq.XAttribute,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Gets the object from XML attribute.
            </summary>
            <remarks>
            Note that this method can cause exceptions. The caller will handle them.
            </remarks>
            <param name="attribute">The attribute.</param>
            <param name="memberValue">The property data.</param>
            <returns>Object or <c>null</c>.</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetObjectFromXmlElement(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo},System.Xml.Linq.XElement,Catel.Runtime.Serialization.MemberValue,System.Type)">
            <summary>
            Gets the object from XML element.
            </summary>
            <param name="context">The context.</param>
            <param name="element">The element.</param>
            <param name="memberValue">The member value.</param>
            <param name="modelType">Type of the model.</param>
            <returns>Object or <c>null</c>.</returns>
            <remarks>Note that this method can cause exceptions. The caller will handle them.</remarks>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.WriteXmlAttribute(System.Xml.Linq.XElement,System.String,Catel.Runtime.Serialization.MemberValue)">
            <summary>
            Writes the XML attribute to the xml element.
            </summary>
            <param name="element">The element.</param>
            <param name="attributeName">Name of the attribute.</param>
            <param name="memberValue">The member value.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.WriteXmlElement(Catel.Runtime.Serialization.ISerializationContext{Catel.Runtime.Serialization.Xml.XmlSerializationContextInfo},System.Xml.Linq.XElement,System.String,Catel.Runtime.Serialization.MemberValue,System.Type)">
            <summary>
            Writes the XML element to the xml element.
            </summary>
            <param name="context">The context.</param>
            <param name="element">The element.</param>
            <param name="elementName">Name of the element.</param>
            <param name="memberValue">The member value.</param>
            <param name="modelType">Type of the model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.AddReferenceId(Catel.Runtime.Serialization.ISerializationContext,System.Xml.Linq.XElement,System.Object)">
            <summary>
            Adds the reference unique identifier as attribute.
            </summary>
            <param name="context">The context.</param>
            <param name="element">The element.</param>
            <param name="model">The model.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.EnsureNamespaceInXmlDocument(System.Xml.Linq.XElement,Catel.Runtime.Serialization.Xml.XmlNamespace)">
            <summary>
            Ensures the catel namespace in the xml document.
            </summary>
            <param name="element">The element.</param>
            <param name="xmlNamespace">The XML namespace. Can be <c>null</c>.</param>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetNamespacePrefix">
            <summary>
            Gets the namespace prefix.
            </summary>
            <returns>The namespace prefix..</returns>
        </member>
        <member name="M:Catel.Runtime.Serialization.Xml.XmlSerializer.GetNamespaceUrl">
            <summary>
            Gets the namespace.
            </summary>
            <returns>The namespace.</returns>
        </member>
        <member name="T:Catel.Scoping.ScopeClosedEventArgs">
            <summary>
            EventArgs for the <see cref="E:Catel.Scoping.ScopeManager`1.ScopeClosed"/> event.
            </summary>
        </member>
        <member name="M:Catel.Scoping.ScopeClosedEventArgs.#ctor(System.Object,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Scoping.ScopeClosedEventArgs" /> class.
            </summary>
            <param name="scopeObject">The scope object.</param>
            <param name="scopeName">Name of the scope.</param>
        </member>
        <member name="P:Catel.Scoping.ScopeClosedEventArgs.ScopeObject">
            <summary>
            Gets the scope object.
            </summary>
            <value>The scope object.</value>
        </member>
        <member name="P:Catel.Scoping.ScopeClosedEventArgs.ScopeName">
            <summary>
            Gets the name of the scope.
            </summary>
            <value>The name of the scope.</value>
        </member>
        <member name="T:Catel.Scoping.ScopeManager`1">
            <summary>
            Custom scope manager to define a scope for a type.
            </summary>
            <typeparam name="T">The type to scope.</typeparam>
        </member>
        <member name="M:Catel.Scoping.ScopeManager`1.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Scoping.ScopeManager`1"/> class.
            </summary>
        </member>
        <member name="M:Catel.Scoping.ScopeManager`1.#ctor(System.String,System.Func{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Scoping.ScopeManager`1" /> class.
            </summary>
            <param name="scopeName">Name of the scope.</param>
            <param name="createScopeFunction">The create scope function.</param>
        </member>
        <member name="E:Catel.Scoping.ScopeManager`1.ScopeClosed">
            <summary>
            Occurs when the scope reference count reaches zero.
            </summary>
        </member>
        <member name="P:Catel.Scoping.ScopeManager`1.ScopeObject">
            <summary>
            Gets the scope object.
            </summary>
        </member>
        <member name="P:Catel.Scoping.ScopeManager`1.RefCount">
            <summary>
            Gets the current reference count for this
            object.
            </summary>
        </member>
        <member name="M:Catel.Scoping.ScopeManager`1.Dispose">
            <summary>
            Dispose object, dereferencing or disposing the context it is managing.
            </summary>
        </member>
        <member name="M:Catel.Scoping.ScopeManager`1.ScopeExists(System.String)">
            <summary>
            Determines whether the specified scope exists.
            </summary>
            <param name="scopeName">Name of the scope.</param>
            <returns><c>true</c> if the scope exists, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="scopeName"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Scoping.ScopeManager`1.GetScopeManager(System.String,System.Func{`0})">
            <summary>
            Gets the ContextManager object for the specified database.
            </summary>
            <param name="scopeName">Name of the scope.</param>
            <param name="createScopeFunction">The create scope function. Can be <c>null</c>.</param>
            <returns>The <see cref="T:Catel.Scoping.ScopeManager`1" />.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="scopeName"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Services.IObjectConverterServiceExtensions">
            <summary>
            Extension methods for <see cref="T:Catel.Services.IObjectConverterService"/>.
            </summary>
        </member>
        <member name="M:Catel.Services.IObjectConverterServiceExtensions.ConvertFromStringToObject``1(Catel.Services.IObjectConverterService,System.String)">
            <summary>
            Converts the specified string value to an object.
            </summary>
            <typeparam name="T">The type to convert to.</typeparam>
            <param name="service">The service.</param>
            <param name="value">The value.</param>
            <returns>The object value.</returns>
        </member>
        <member name="M:Catel.Services.IObjectConverterServiceExtensions.ConvertFromObjectToObject``1(Catel.Services.IObjectConverterService,System.Object)">
            <summary>
            Converts the specified object to an object.
            </summary>
            <typeparam name="T">The type to convert to.</typeparam>
            <param name="service">The service.</param>
            <param name="value">The value.</param>
            <returns>The object value.</returns>
        </member>
        <member name="T:Catel.Services.IRollingInMemoryLogService">
            <summary>
            Rolling in memory log service.
            </summary>
        </member>
        <member name="P:Catel.Services.IRollingInMemoryLogService.MaximumNumberOfLogEntries">
            <summary>
            Gets or sets the maximum number of log entries to keep.
            <para />
            The default value is 250.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Services.IRollingInMemoryLogService.MaximumNumberOfWarningLogEntries">
            <summary>
            Gets or sets the maximum number of warning log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Services.IRollingInMemoryLogService.MaximumNumberOfErrorLogEntries">
            <summary>
            Gets or sets the maximum number of error log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Services.IRollingInMemoryLogService.LogListener">
            <summary>
            Gets the log listener.
            </summary>
            <value>The log listener.</value>
        </member>
        <member name="E:Catel.Services.IRollingInMemoryLogService.LogMessage">
            <summary>
            Occurs when a log message is written.
            </summary>
        </member>
        <member name="M:Catel.Services.IRollingInMemoryLogService.GetLogEntries">
            <summary>
            Gets the log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Services.IRollingInMemoryLogService.GetWarningLogEntries">
            <summary>
            Gets the warning log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Services.IRollingInMemoryLogService.GetErrorLogEntries">
            <summary>
            Gets the error log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="T:Catel.Services.IObjectConverterService">
            <summary>
            Service to convert objects to strings and vice versa.
            </summary>
        </member>
        <member name="M:Catel.Services.IObjectConverterService.ConvertFromObjectToString(System.Object)">
            <summary>
            Converts the specified object to a string.
            </summary>
            <param name="value">The value.</param>
            <returns>The string value.</returns>
        </member>
        <member name="M:Catel.Services.IObjectConverterService.ConvertFromStringToObject(System.String,System.Type)">
            <summary>
            Converts the specified string value to an object.
            </summary>
            <param name="value">The value.</param>
            <param name="targetType">The target type.</param>
            <returns>The object value.</returns>
        </member>
        <member name="M:Catel.Services.IObjectConverterService.ConvertFromObjectToObject(System.Object,System.Type)">
            <summary>
            Converts the specified object to an object.
            </summary>
            <param name="value">The value.</param>
            <param name="targetType">Type of the target.</param>
            <returns>The object value.</returns>
        </member>
        <member name="T:Catel.Services.RollingInMemoryLogService">
            <summary>
            Rolling in memory log service.
            </summary>
        </member>
        <member name="M:Catel.Services.RollingInMemoryLogService.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Services.RollingInMemoryLogService" /> class.
            </summary>
        </member>
        <member name="M:Catel.Services.RollingInMemoryLogService.#ctor(Catel.Logging.RollingInMemoryLogListener)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Services.RollingInMemoryLogService"/> class.
            </summary>
            <param name="logListener">The log listener. If <c>null</c>, this service will create its own log listener.</param>
        </member>
        <member name="P:Catel.Services.RollingInMemoryLogService.LogListener">
            <summary>
            Gets the log listener.
            </summary>
            <value>The log listener.</value>
        </member>
        <member name="P:Catel.Services.RollingInMemoryLogService.MaximumNumberOfLogEntries">
            <summary>
            Gets or sets the maximum number of log entries to keep.
            <para />
            The default value is 250.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Services.RollingInMemoryLogService.MaximumNumberOfWarningLogEntries">
            <summary>
            Gets or sets the maximum number of warning log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="P:Catel.Services.RollingInMemoryLogService.MaximumNumberOfErrorLogEntries">
            <summary>
            Gets or sets the maximum number of error log entries to keep.
            <para />
            The default value is 50.
            </summary>
            <value>The maximum number of log entries.</value>
        </member>
        <member name="E:Catel.Services.RollingInMemoryLogService.LogMessage">
            <summary>
            Occurs when a log message is written.
            </summary>
        </member>
        <member name="M:Catel.Services.RollingInMemoryLogService.GetLogEntries">
            <summary>
            Gets the log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Services.RollingInMemoryLogService.GetWarningLogEntries">
            <summary>
            Gets the warning log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="M:Catel.Services.RollingInMemoryLogService.GetErrorLogEntries">
            <summary>
            Gets the error log entries.
            </summary>
            <returns>IEnumerable&lt;LogEntry&gt;.</returns>
        </member>
        <member name="T:Catel.Services.ILanguageService">
            <summary>
            Service to implement the retrieval of language services.
            </summary>
        </member>
        <member name="P:Catel.Services.ILanguageService.FallbackCulture">
            <summary>
            Gets or sets the fallback culture.
            </summary>
            <value>The fallback culture.</value>
        </member>
        <member name="P:Catel.Services.ILanguageService.PreferredCulture">
            <summary>
            Gets or sets the preferred culture.
            </summary>
            <value>The preferred culture.</value>
        </member>
        <member name="P:Catel.Services.ILanguageService.CacheResults">
            <summary>
            Gets or sets a value indicating whether the results should be cached.
            <para />
            The default value is <c>true</c>.
            </summary>
            <value><c>true</c> if the results should be cached; otherwise, <c>false</c>.</value>
        </member>
        <member name="E:Catel.Services.ILanguageService.LanguageUpdated">
            <summary>
            Occurs when the <see cref="P:Catel.Services.ILanguageService.FallbackCulture"/> or <see cref="P:Catel.Services.ILanguageService.PreferredCulture"/> are updated.
            </summary>
        </member>
        <member name="M:Catel.Services.ILanguageService.RegisterLanguageSource(Catel.Services.ILanguageSource)">
            <summary>
            Registers the language source.
            </summary>
            <param name="languageSource">The language source.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="languageSource" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Services.ILanguageService.GetString(System.String)">
            <summary>
            Gets the string with the <see cref="P:Catel.Services.LanguageService.PreferredCulture" />. If the preferred language cannot be
            found, this method will use the <see cref="P:Catel.Services.LanguageService.FallbackCulture" /> to retrieve the
            string.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <returns>The string or <c>null</c> if the resource cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Services.ILanguageService.GetString(System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string with the specified culture.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The string or <c>null</c> if the resource cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="cultureInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Services.ILanguageService.PreloadLanguageSources">
            <summary>
            Preloads the language sources to provide optimal performance.
            </summary>
        </member>
        <member name="M:Catel.Services.ILanguageService.ClearLanguageResources">
            <summary>
            Clears the language resources.
            </summary>
        </member>
        <member name="T:Catel.Services.ILanguageSource">
            <summary>
            Interface defining a language source.
            </summary>
        </member>
        <member name="M:Catel.Services.ILanguageSource.GetSource">
            <summary>
            Gets the source for the current language source.
            </summary>
            <returns>The source string.</returns>
        </member>
        <member name="T:Catel.Services.IService">
            <summary>
            Interface to define a service.
            </summary>
        </member>
        <member name="P:Catel.Services.IService.Name">
            <summary>
            Gets the name of the service.
            </summary>
            <value>The name of the service.</value>
        </member>
        <member name="T:Catel.Services.LanguageService">
            <summary>
            Service to implement the retrieval of language services.
            </summary>
        </member>
        <member name="M:Catel.Services.LanguageService.PreloadLanguageSource(Catel.Services.ILanguageSource)">
            <summary>
            Preloads the language sources to provide optimal performance.
            </summary>
            <param name="languageSource">The language source.</param>    
        </member>
        <member name="M:Catel.Services.LanguageService.GetString(Catel.Services.ILanguageSource,System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string from the specified resource file with the current culture.
            </summary>
            <param name="languageSource">The language source.</param>
            <param name="resourceName">Name of the resource.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The string or <c>null</c> if the string cannot be found.</returns>
        </member>
        <member name="M:Catel.Services.LanguageService.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Services.LanguageService"/> class.
            </summary>
        </member>
        <member name="P:Catel.Services.LanguageService.FallbackCulture">
            <summary>
            Gets or sets the fallback culture.
            </summary>
            <value>The fallback culture.</value>
        </member>
        <member name="P:Catel.Services.LanguageService.PreferredCulture">
            <summary>
            Gets or sets the preferred culture.
            </summary>
            <value>The preferred culture.</value>
        </member>
        <member name="P:Catel.Services.LanguageService.CacheResults">
            <summary>
            Gets or sets a value indicating whether the results should be cached.
            <para />
            The default value is <c>true</c>.
            </summary>
            <value><c>true</c> if the results should be cached; otherwise, <c>false</c>.</value>
        </member>
        <member name="E:Catel.Services.LanguageService.LanguageUpdated">
            <summary>
            Occurs when the <see cref="P:Catel.Services.LanguageService.FallbackCulture"/> or <see cref="P:Catel.Services.LanguageService.PreferredCulture"/> are updated.
            </summary>
        </member>
        <member name="M:Catel.Services.LanguageService.PreloadLanguageSources">
            <summary>
            Preloads the language sources to provide optimal performance.
            </summary>
        </member>
        <member name="M:Catel.Services.LanguageService.RegisterLanguageSource(Catel.Services.ILanguageSource)">
            <summary>
            Registers the language source.
            </summary>
            <param name="languageSource">The language source.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="languageSource" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.Services.LanguageService.ClearLanguageResources">
            <summary>
            Clears the language resources.
            </summary>
        </member>
        <member name="M:Catel.Services.LanguageService.GetString(System.String)">
            <summary>
            Gets the string with the <see cref="P:Catel.Services.LanguageService.PreferredCulture" />. If the preferred language cannot be
            found, this method will use the <see cref="P:Catel.Services.LanguageService.FallbackCulture" /> to retrieve the
            string.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <returns>The string or <c>null</c> if the resource cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Services.LanguageService.GetString(System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string with the specified culture.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The string or <c>null</c> if the resource cannot be found.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="resourceName" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="cultureInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Services.LanguageServiceBase">
            <summary>
            Abstract class to allow partial abstract methods.
            </summary>
        </member>
        <member name="M:Catel.Services.LanguageServiceBase.PreloadLanguageSource(Catel.Services.ILanguageSource)">
            <summary>
            Preloads the language sources to provide optimal performance.
            </summary>
            <param name="languageSource">The language source.</param>
        </member>
        <member name="M:Catel.Services.LanguageServiceBase.GetString(Catel.Services.ILanguageSource,System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string from the specified resource file with the current culture.
            </summary>
            <param name="languageSource">The language source.</param>
            <param name="resourceName">Name of the resource.</param>
            <param name="cultureInfo">The culture information.</param>
            <returns>The string or <c>null</c> if the string cannot be found.</returns>
        </member>
        <member name="T:Catel.Services.Models.LanguageResourceKey">
            <summary>
            Language resource key.
            </summary>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceKey.#ctor(System.String,System.Globalization.CultureInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Services.Models.LanguageResourceKey"/> class.
            </summary>
            <param name="resourceName">Name of the resource.</param>
            <param name="cultureInfo">The culture information.</param>
        </member>
        <member name="P:Catel.Services.Models.LanguageResourceKey.ResourceName">
            <summary>
            Gets the name of the resource.
            </summary>
            <value>The name of the resource.</value>
        </member>
        <member name="P:Catel.Services.Models.LanguageResourceKey.CultureInfo">
            <summary>
            Gets the culture information.
            </summary>
            <value>The culture information.</value>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceKey.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to this instance.
            </summary>
            <param name="obj">The object to compare with the current object.</param>
            <returns><c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceKey.Equals(Catel.Services.Models.LanguageResourceKey)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <param name="other">An object to compare with this object.</param>
            <returns>true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.</returns>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceKey.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.</returns>
        </member>
        <member name="T:Catel.Services.Models.LanguageResourceSource">
            <summary>
            <see cref="T:Catel.Services.ILanguageSource" /> implementation for resource files.
            </summary>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceSource.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Services.Models.LanguageResourceSource" /> class.
            </summary>
            <param name="assemblyName">Name of the assembly.</param>
            <param name="namespaceName">Name of the namespace.</param>
            <param name="resourceFileName">Name of the resource file.</param>
        </member>
        <member name="P:Catel.Services.Models.LanguageResourceSource.AssemblyName">
            <summary>
            Gets the name of the assembly.
            </summary>
            <value>The name of the assembly.</value>
        </member>
        <member name="P:Catel.Services.Models.LanguageResourceSource.NamespaceName">
            <summary>
            Gets the name of the namespace.
            </summary>
            <value>The name of the namespace.</value>
        </member>
        <member name="P:Catel.Services.Models.LanguageResourceSource.ResourceFileName">
            <summary>
            Gets the name of the resource file.
            </summary>
            <value>The name of the resource file.</value>
        </member>
        <member name="M:Catel.Services.Models.LanguageResourceSource.GetSource">
            <summary>
            Gets the source for the current language source.
            </summary>
            <returns>The source string.</returns>
        </member>
        <member name="T:Catel.Services.ServiceBase">
            <summary>
            Base class for services.
            </summary>
        </member>
        <member name="P:Catel.Services.ServiceBase.Name">
            <summary>
            Gets the name of the service.
            </summary>
            <value>The name of the service.</value>
        </member>
        <member name="T:Catel.Services.ObjectConverterService">
            <summary>
            Service to convert objects to strings and vice versa.
            </summary>
        </member>
        <member name="M:Catel.Services.ObjectConverterService.ConvertFromObjectToString(System.Object)">
            <summary>
            Converts the specified object to a string.
            </summary>
            <param name="value">The value.</param>
            <returns>The string value.</returns>
        </member>
        <member name="M:Catel.Services.ObjectConverterService.ConvertFromStringToObject(System.String,System.Type)">
            <summary>
            Converts the specified string value to an object.
            </summary>
            <param name="value">The value.</param>
            <param name="targetType">The target type.</param>
            <returns>The object value.</returns>
        </member>
        <member name="M:Catel.Services.ObjectConverterService.ConvertFromObjectToObject(System.Object,System.Type)">
            <summary>
            Converts the specified object to an object.
            </summary>
            <param name="value">The value.</param>
            <param name="targetType">Type of the target.</param>
            <returns>The object value.</returns>
        </member>
        <member name="T:Catel.Platforms">
            <summary>
            Information about the platforms.
            </summary>
        </member>
        <member name="M:Catel.Platforms.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Catel.Platforms"/> class.
            </summary>
        </member>
        <member name="P:Catel.Platforms.CurrentPlatform">
            <summary>
            Gets the current platform.
            </summary>
            <value>The current platform.</value>
        </member>
        <member name="M:Catel.Platforms.IsPlatformSupported(Catel.KnownPlatforms)">
            <summary>
            Determines whether the specified known platforms is currently supported.
            </summary>
            <param name="platformToCheck">The platform to check.</param>
            <returns><c>true</c> if the platform is supported; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Catel.Platforms.IsPlatformSupported(Catel.KnownPlatforms,Catel.SupportedPlatforms)">
            <summary>
            Determines whether the specified known platforms is currently supported.
            </summary>
            <param name="platformToCheck">The platform to check.</param>
            <param name="currentPlatform">The current platform.</param>
            <returns><c>true</c> if the platform is supported; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:Catel.SupportedPlatforms">
            <summary>
            All the available supported platforms.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.NET40">
            <summary>
            .NET framework 4.0.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.NET45">
            <summary>
            .NET framework 4.5.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.NET46">
            <summary>
            .NET framework 4.6.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.NET50">
            <summary>
            .NET framework 5.0.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.Silverlight5">
            <summary>
            Silverlight 5.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsPhone80">
            <summary>
            Windows Phone 8.0.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsPhone81Silverlight">
            <summary>
            Windows Phone 8.1 (Silverlight).
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsPhone81Runtime">
            <summary>
            Windows Phone 8.1 (Runtime).
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsRuntime80">
            <summary>
            Windows Runtime 8.0.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsRuntime81">
            <summary>
            Windows Runtime 8.1.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.WindowsUniversal100">
            <summary>
            Windows Universal 10.0.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.Android">
            <summary>
            The Android platform.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.iOS">
            <summary>
            The iOS platform.
            </summary>
        </member>
        <member name="F:Catel.SupportedPlatforms.PCL">
            <summary>
            Portable Class Library platform.
            </summary>
        </member>
        <member name="T:Catel.KnownPlatforms">
            <summary>
            Known platform groups.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.Unknown">
            <summary>
            The current platform is unknown.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.NET">
            <summary>
            Any .NET platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.NET40">
            <summary>
            .NET framework 4.0.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.NET45">
            <summary>
            .NET framework 4.5.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.NET46">
            <summary>
            .NET framework 4.6.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.NET50">
            <summary>
            .NET framework 5.0.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.Silverlight">
            <summary>
            Any sSilverlight platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.Silverlight5">
            <summary>
            Silverlight 5.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhone">
            <summary>
            Any Windows Phone platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhoneSilverlight">
            <summary>
            Any Windows Phone Silverlight platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhoneRuntime">
            <summary>
            Any Windows Phone Runtime platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhone80">
            <summary>
            Windows Phone 8.0.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhone81Silverlight">
            <summary>
            Windows Phone 8.1 (Silverlight).
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsPhone81Runtime">
            <summary>
            Windows Phone 8.1 (Runtime).
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsRuntime">
            <summary>
            Any Windows Runtime platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsRuntime80">
            <summary>
            Windows Runtime 8.0.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsRuntime81">
            <summary>
            Windows Runtime 8.1.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsUniversal">
            <summary>
            Any Windows Universal platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.WindowsUniversal100">
            <summary>
            Windows Universal 10.0.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.Xamarin">
            <summary>
            Any Xamarin platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.XamarinAndroid">
            <summary>
            The Xamarin Android platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.XamariniOS">
            <summary>
            The Xamarin iOS platform.
            </summary>
        </member>
        <member name="F:Catel.KnownPlatforms.PCL">
            <summary>
            Portable Class Library platform.
            </summary>
        </member>
        <member name="T:Catel.Test.ExceptionTester">
            <summary>
            Class that helps test methods for expected exceptions.
            </summary>
        </member>
        <member name="M:Catel.Test.ExceptionTester.CallMethodAndExpectException``1(System.Action,System.Func{``0,System.Boolean})">
            <summary>
            Calls the method and checks for the exception.
            <para />
            If no exception is thrown by the method, this method will throw an exception. If the wrong
            exception is thrown by the delegate, this method will thrown an exception as well.
            </summary>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="action">The action to execute.</param>
            <param name="exceptionValidator">The exception validator. If <c>null</c>, the exception will not be validated custom.</param>
            <returns>The exception so it can be further analyzed if required.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Text.StringBuilderExtensions">
            <summary>
            Extensions for the <see cref="T:System.Text.StringBuilder"/> class.
            </summary>
        </member>
        <member name="M:Catel.Text.StringBuilderExtensions.AppendLine(System.Text.StringBuilder,System.String,System.Object[])">
            <summary>
            Appends a new line with formatting options to the string builder.
            </summary>
            <param name="sb">The <see cref="T:System.Text.StringBuilder"/>.</param>
            <param name="format">The message format.</param>
            <param name="args">The formatting arguments.</param>
        </member>
        <member name="T:Catel.Threading.AsyncLock">
            <summary>
            A mutual exclusion lock that is compatible with async. Note that this lock is <b>not</b> recursive!
            </summary>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="F:Catel.Threading.AsyncLock._cachedKeyTask">
            <summary>
            A task that is completed with the key object for this lock.
            </summary>
        </member>
        <member name="F:Catel.Threading.AsyncLock._mutex">
            <summary>
            The object used for mutual exclusion.
            </summary>
        </member>
        <member name="F:Catel.Threading.AsyncLock._queue">
            <summary>
            The queue of TCSs that other tasks are awaiting to acquire the lock.
            </summary>
        </member>
        <member name="F:Catel.Threading.AsyncLock._id">
            <summary>
            The semi-unique identifier for this instance. This is 0 if the id has not yet been created.
            </summary>
        </member>
        <member name="F:Catel.Threading.AsyncLock._taken">
            <summary>
            Whether the lock is taken by a task.
            </summary>
        </member>
        <member name="M:Catel.Threading.AsyncLock.#ctor">
            <summary>
            Creates a new async-compatible mutual exclusion lock.
            </summary>
        </member>
        <member name="M:Catel.Threading.AsyncLock.#ctor(Catel.Threading.IAsyncWaitQueue{System.IDisposable})">
            <summary>
            Creates a new async-compatible mutual exclusion lock using the specified wait queue.
            </summary>
            <param name="queue">The wait queue used to manage waiters.</param>
        </member>
        <member name="P:Catel.Threading.AsyncLock.Id">
            <summary>
            Gets a semi-unique identifier for this asynchronous lock.
            </summary>
        </member>
        <member name="M:Catel.Threading.AsyncLock.LockAsync(System.Threading.CancellationToken)">
            <summary>
            Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed.
            </summary>
            <param name="cancellationToken">The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available).</param>
            <returns>A disposable that releases the lock when disposed.</returns>
        </member>
        <member name="M:Catel.Threading.AsyncLock.Lock(System.Threading.CancellationToken)">
            <summary>
            Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread.
            </summary>
            <param name="cancellationToken">The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available).</param>
        </member>
        <member name="M:Catel.Threading.AsyncLock.LockAsync">
            <summary>
            Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed.
            </summary>
            <returns>A disposable that releases the lock when disposed.</returns>
        </member>
        <member name="M:Catel.Threading.AsyncLock.Lock">
            <summary>
            Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread.
            </summary>
        </member>
        <member name="M:Catel.Threading.AsyncLock.ReleaseLock">
            <summary>
            Releases the lock.
            </summary>
        </member>
        <member name="T:Catel.Threading.AsyncLock.Key">
            <summary>
            The disposable which releases the lock.
            </summary>
        </member>
        <member name="F:Catel.Threading.AsyncLock.Key._asyncLock">
            <summary>
            The lock to release.
            </summary>
        </member>
        <member name="M:Catel.Threading.AsyncLock.Key.#ctor(Catel.Threading.AsyncLock)">
            <summary>
            Creates the key for a lock.
            </summary>
            <param name="asyncLock">The lock to release. May not be <c>null</c>.</param>
        </member>
        <member name="M:Catel.Threading.AsyncLock.Key.Dispose">
            <summary>
            Release the lock.
            </summary>
        </member>
        <member name="T:Catel.Threading.AwaitableDisposable`1">
            <summary>
            An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())".
            </summary>
            <typeparam name="T">The type of the result of the underlying task.</typeparam>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="F:Catel.Threading.AwaitableDisposable`1._task">
            <summary>
            The underlying task.
            </summary>
        </member>
        <member name="M:Catel.Threading.AwaitableDisposable`1.#ctor(System.Threading.Tasks.Task{`0})">
            <summary>
            Initializes a new awaitable wrapper around the specified task.
            </summary>
            <param name="task">The underlying task to wrap.</param>
        </member>
        <member name="M:Catel.Threading.AwaitableDisposable`1.AsTask">
            <summary>
            Returns the underlying task.
            </summary>
        </member>
        <member name="M:Catel.Threading.AwaitableDisposable`1.op_Implicit(Catel.Threading.AwaitableDisposable{`0})~System.Threading.Tasks.Task{`0}">
            <summary>
            Implicit conversion to the underlying task.
            </summary>
            <param name="source">The awaitable wrapper.</param>
        </member>
        <member name="M:Catel.Threading.AwaitableDisposable`1.GetAwaiter">
            <summary>
            Infrastructure. Returns the task awaiter for the underlying task.
            </summary>
        </member>
        <member name="M:Catel.Threading.AwaitableDisposable`1.ConfigureAwait(System.Boolean)">
            <summary>
            Infrastructure. Returns a configured task awaiter for the underlying task.
            </summary>
            <param name="continueOnCapturedContext">Whether to attempt to marshal the continuation back to the captured context.</param>
        </member>
        <member name="T:Catel.Threading.DefaultAsyncWaitQueue`1">
            <summary>
            The default wait queue implementation, which uses a double-ended queue.
            </summary>
            <typeparam name="T">The type of the results. If this isn't needed, use <see cref="T:System.Object"/>.</typeparam>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="T:Catel.Threading.AsyncWaitQueueExtensions">
            <summary>
            Provides extension methods for wait queues.
            </summary>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="M:Catel.Threading.AsyncWaitQueueExtensions.Enqueue``1(Catel.Threading.IAsyncWaitQueue{``0},System.Object,System.Threading.CancellationToken)">
            <summary>
            Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue.
            </summary>
            <param name="this">The wait queue.</param>
            <param name="syncObject">A synchronization object taken while cancelling the entry.</param>
            <param name="token">The token used to cancel the wait.</param>
            <returns>The queued task.</returns>
        </member>
        <member name="T:Catel.Threading.SynchronizationContextExtensions">
            <summary>
            Extension methods for the SynchronizationContext.
            </summary>
        </member>
        <member name="M:Catel.Threading.SynchronizationContextExtensions.AcquireScope(Catel.Threading.SynchronizationContext)">
            <summary>
            Acquires the scope of the <see cref="T:Catel.Threading.SynchronizationContext"/>. When the token is disposed, the context is released.
            </summary>
            <param name="synchronizationContext">The synchronization context.</param>
            <returns>IDisposableToken&lt;SynchronizationContext&gt;.</returns>
        </member>
        <member name="T:Catel.Threading.TaskExtensions">
            <summary>
            Class TaskExtensions.
            </summary>
        </member>
        <member name="M:Catel.Threading.TaskExtensions.WaitAndUnwrapException(System.Threading.Tasks.Task)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
        </member>
        <member name="M:Catel.Threading.TaskExtensions.WaitAndUnwrapException(System.Threading.Tasks.Task,System.Threading.CancellationToken)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <param name="task">The task. May not be <c>null</c>.</param>
            <param name="cancellationToken">A cancellation token to observe while waiting for the task to complete.</param>
            <exception cref="T:System.OperationCanceledException">The <paramref name="cancellationToken"/> was cancelled before the <paramref name="task"/> completed, or the <paramref name="task"/> raised an <see cref="T:System.OperationCanceledException"/>.</exception>
        </member>
        <member name="M:Catel.Threading.TaskExtensions.WaitAndUnwrapException``1(System.Threading.Tasks.Task{``0})">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result of the task.</typeparam>
            <param name="task">The task. May not be <c>null</c>.</param>
            <returns>The result of the task.</returns>
        </member>
        <member name="M:Catel.Threading.TaskExtensions.WaitAndUnwrapException``1(System.Threading.Tasks.Task{``0},System.Threading.CancellationToken)">
            <summary>
            Waits for the task to complete, unwrapping any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result of the task.</typeparam>
            <param name="task">The task. May not be <c>null</c>.</param>
            <param name="cancellationToken">A cancellation token to observe while waiting for the task to complete.</param>
            <returns>The result of the task.</returns>
            <exception cref="T:System.OperationCanceledException">The <paramref name="cancellationToken"/> was cancelled before the <paramref name="task"/> completed, or the <paramref name="task"/> raised an <see cref="T:System.OperationCanceledException"/>.</exception>
        </member>
        <member name="T:Catel.Threading.TaskHelper`1">
            <summary>
            Helper class for tasks.
            </summary>
            <typeparam name="T">The type of the tasks.</typeparam>
        </member>
        <member name="P:Catel.Threading.TaskHelper`1.DefaultValue">
            <summary>
            A <see cref="T:System.Threading.Tasks.Task"/> return the default value of <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="P:Catel.Threading.TaskHelper`1.Canceled">
            <summary>
            A <see cref="T:System.Threading.Tasks.Task"/> representing a canceled task.
            </summary>
        </member>
        <member name="M:Catel.Threading.TaskHelper`1.FromResult(`0)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task"/> using the <c>Task.FromResult</c> method, but caches the result for the next call.
            </summary>
            <param name="value">The value.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="T:Catel.Threading.TaskHelper">
            <summary>
            Helper class for tasks.
            </summary>
        </member>
        <member name="P:Catel.Threading.TaskHelper.Completed">
            <summary>
            A <see cref="T:System.Threading.Tasks.Task"/> that has been completed.
            </summary>
        </member>
        <member name="P:Catel.Threading.TaskHelper.Canceled">
            <summary>
            A <see cref="T:System.Threading.Tasks.Task"/> that has been canceled.
            </summary>
        </member>
        <member name="F:Catel.Threading.TaskHelper.DefaultConfigureAwaitValue">
            <summary>
            The default configure await value.
            </summary>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run(System.Action)">
            <summary>
            Runs the specified action using Task.Run if available.
            </summary>
            <param name="action">The action.</param>
            <returns>Task.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run(System.Action,System.Threading.CancellationToken)">
            <summary>
            Runs the specified action using Task.Run if available.
            </summary>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>Task.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run(System.Action,System.Threading.CancellationToken,System.Boolean)">
            <summary>
            Runs the specified action using Task.Run if available.
            </summary>
            <param name="action">The action.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <param name="configureAwait">The value to be passed into ConfigureAwait.</param>
            <returns>Task.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run(System.Action,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <param name="action">The action.</param>
            <param name="configureAwait">The value to be passed into ConfigureAwait.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run``1(System.Func{``0})">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <typeparam name="TResult"></typeparam>
            <param name="func">The function.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run``1(System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <typeparam name="TResult">Type of the result.</typeparam>
            <param name="func">The function.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run``1(System.Func{``0},System.Threading.CancellationToken,System.Boolean)">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <typeparam name="TResult">Type of the result.</typeparam>
            <param name="func">The function.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <param name="configureAwait">The value to be passed into ConfigureAwait.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run``1(System.Func{``0},System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <typeparam name="TResult">Type of the result.</typeparam>
            <param name="func">The function.</param>
            <param name="configureAwait">The value to be passed into ConfigureAwait.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.Run``1(System.Func{System.Threading.Tasks.Task{``0}},System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Runs the specified function using Task.Run if available.
            </summary>
            <typeparam name="TResult">Type of the result.</typeparam>
            <param name="func">The function.</param>
            <param name="configureAwait">The value to be passed into ConfigureAwait.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>Task&lt;T&gt;.</returns>
        </member>
        <member name="M:Catel.Threading.TaskHelper.RunAndWait(System.Action[])">
            <summary>
            Runs all the specified actions in separate threads and waits for the to complete.
            </summary>
            <param name="actions">The actions to spawn in separate threads.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actions"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Threading.TaskHelper.RunAndWaitAsync(System.Action[])">
            <summary>
            Runs all the specified actions in separate threads and waits for the to complete.
            <para />
            The waiting for all threads is also done in a separate thread which makes this method asynchronous.
            </summary>
            <param name="actions">The actions to spawn in separate threads.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actions"/> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Threading.TaskHelper.RunAndWaitAsync(System.Func{System.Threading.Tasks.Task}[])">
            <summary>
            Runs all the specified actions in separate threads and waits for the to complete.
            <para />
            The waiting for all threads is also done in a separate thread which makes this method asynchronous.
            </summary>
            <param name="actions">The actions to spawn in separate threads.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actions"/> is <c>null</c>.</exception>
        </member>
        <member name="T:Catel.Threading.TaskShim">
            <summary>
            Task wrapper so it works on all platforms.
            </summary>
            <remarks>This code originally comes from https://github.com/StephenCleary/AsyncEx/blob/77b9711c2c5fd4ca28b220ce4c93d209eeca2b4a/Source/Unit%20Tests/Tests%20(NET40)/Internal/TaskShim.cs.</remarks>
        </member>
        <member name="M:Catel.Threading.TaskShim.Delay(System.Int32)">
            <summary>
            Creates a task that will complete after a time delay.
            </summary>
            <param name="millisecondsDelay">The number of milliseconds to wait before completing the returned task</param>
            <returns>A task that represents the time delay</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="millisecondsDelay" /> is less than -1.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Delay(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Creates a task that will complete after a time delay.
            </summary>
            <param name="millisecondsDelay">The number of milliseconds to wait before completing the returned task</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A task that represents the time delay</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="millisecondsDelay" /> is less than -1.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Delay(System.TimeSpan)">
            <summary>
            Starts a Task that will complete after the specified due time.
            </summary>
            <param name="dueTime">The delay before the returned task completes.</param>
            <returns>The timed Task.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime" /> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Delay(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Starts a Task that will complete after the specified due time.
            </summary>
            <param name="dueTime">The delay before the returned task completes.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>The timed Task.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime" /> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run(System.Action)">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a task handle for that work.
            </summary>
            <param name="action">The work to execute asynchronously.</param>
            <returns>A task that represents the work queued to execute in the ThreadPool.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run(System.Action,System.Threading.CancellationToken)">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a task handle for that work.
            </summary>
            <param name="action">The work to execute asynchronously.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A task that represents the work queued to execute in the ThreadPool.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a proxy for the  task returned by <paramref name="function" />.
            </summary>
            <param name="function">The work to execute asynchronously.</param>
            <returns>A task that represents a proxy for the task returned by <paramref name="function" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run(System.Func{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a proxy for the  task returned by <paramref name="function" />.
            </summary>
            <param name="function">The work to execute asynchronously.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A task that represents a proxy for the task returned by <paramref name="function" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run``1(System.Func{``0})">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a Task(TResult) handle for that work.
            </summary>
            <typeparam name="TResult">The result type of the task.</typeparam>
            <param name="function">The work to execute asynchronously.</param>
            <returns>A Task(TResult) that represents the work queued to execute in the ThreadPool.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run``1(System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a Task(TResult) handle for that work.
            </summary>
            <typeparam name="TResult">The result type of the task.</typeparam>
            <param name="function">The work to execute asynchronously.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A Task(TResult) that represents the work queued to execute in the ThreadPool.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run``1(System.Func{System.Threading.Tasks.Task{``0}})">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a proxy for the  Task(TResult) returned by <paramref name="function" />.
            </summary>
            <typeparam name="TResult">The type of the result returned by the proxy task.</typeparam>
            <param name="function">The work to execute asynchronously</param>
            <returns>A Task(TResult) that represents a proxy for the Task(TResult) returned by <paramref name="function" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Run``1(System.Func{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken)">
            <summary>
            Queues the specified work to run on the ThreadPool and returns a proxy for the  Task(TResult) returned by <paramref name="function" />.
            </summary>
            <typeparam name="TResult">The type of the result returned by the proxy task.</typeparam>
            <param name="function">The work to execute asynchronously</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A Task(TResult) that represents a proxy for the Task(TResult) returned by <paramref name="function" />.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="function" /> parameter was null.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.FromResult``1(``0)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task`1" /> that's completed successfully with the specified result.
            </summary>
            <typeparam name="TResult">The type of the result returned by the task.</typeparam>
            <param name="result">The result to store into the completed task.</param>
            <returns>The successfully completed task.</returns>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAll``1(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task{``0}})">
            <summary>
            Creates a task that will complete when all of the supplied tasks have completed.
            </summary>
            <typeparam name="TResult">The type of the completed task.</typeparam>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of all of the supplied tasks.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> collection contained a null task.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAll``1(System.Threading.Tasks.Task{``0}[])">
            <summary>
            Creates a task that will complete when all of the supplied tasks have completed.
            </summary>
            <typeparam name="TResult">The type of the completed task.</typeparam>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of all of the supplied tasks.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAll(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task})">
            <summary>
            Creates a task that will complete when all of the supplied tasks have completed.
            </summary>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of all of the supplied tasks.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> collection contained a null task.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAll(System.Threading.Tasks.Task[])">
            <summary>
            Creates a task that will complete when all of the supplied tasks have completed.
            </summary>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of all of the supplied tasks.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.Yield">
            <summary>
            Creates an awaitable task that asynchronously yields back to the current context when awaited.
            </summary>
            <returns>A context that, when awaited, will asynchronously transition back into the current context at the time of the await. If the current <see cref="T:System.Threading.SynchronizationContext" /> is non-null, it is treated as the current context. Otherwise, the task scheduler that is associated with the currently executing task is treated as the current context.</returns>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAny(System.Threading.Tasks.Task[])">
            <summary>
            Creates a task that will complete when any of the supplied tasks have completed.
            </summary>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of one of the supplied tasks.  The return task's Result is the task that completed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task, or was empty.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAny(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task})">
            <summary>
            Creates a task that will complete when any of the supplied tasks have completed.
            </summary>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of one of the supplied tasks.  The return task's Result is the task that completed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task, or was empty.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAny``1(System.Threading.Tasks.Task{``0}[])">
            <summary>
            Creates a task that will complete when any of the supplied tasks have completed.
            </summary>
            <typeparam name="TResult">The type of the completed task.</typeparam>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of one of the supplied tasks.  The return task's Result is the task that completed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task, or was empty.</exception>
        </member>
        <member name="M:Catel.Threading.TaskShim.WhenAny``1(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task{``0}})">
            <summary>
            Creates a task that will complete when any of the supplied tasks have completed.
            </summary>
            <typeparam name="TResult">The type of the completed task.</typeparam>
            <param name="tasks">The tasks to wait on for completion.</param>
            <returns>A task that represents the completion of one of the supplied tasks.  The return task's Result is the task that completed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks" /> argument was null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="tasks" /> array contained a null task, or was empty.</exception>
        </member>
        <member name="T:Catel.Threading.IAsyncWaitQueue`1">
            <summary>
            A collection of cancelable <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/> instances. Implementations must be threadsafe <b>and</b> must work correctly if the caller is holding a lock.
            </summary>
            <typeparam name="T">The type of the results. If this isn't needed, use <see cref="T:System.Object"/>.</typeparam>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="P:Catel.Threading.IAsyncWaitQueue`1.IsEmpty">
            <summary>
            Gets whether the queue is empty.
            </summary>
        </member>
        <member name="M:Catel.Threading.IAsyncWaitQueue`1.Enqueue">
            <summary>
            Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits.
            </summary>
            <returns>The queued task.</returns>
        </member>
        <member name="M:Catel.Threading.IAsyncWaitQueue`1.Dequeue(`0)">
            <summary>
            Removes a single entry in the wait queue. Returns a disposable that completes that entry.
            </summary>
            <param name="result">The result used to complete the wait queue entry. If this isn't needed, use <c>default(T)</c>.</param>
        </member>
        <member name="M:Catel.Threading.IAsyncWaitQueue`1.DequeueAll(`0)">
            <summary>
            Removes all entries in the wait queue. Returns a disposable that completes all entries.
            </summary>
            <param name="result">The result used to complete the wait queue entries. If this isn't needed, use <c>default(T)</c>.</param>
        </member>
        <member name="M:Catel.Threading.IAsyncWaitQueue`1.TryCancel(System.Threading.Tasks.Task)">
            <summary>
            Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry.
            </summary>
            <param name="task">The task to cancel.</param>
            <returns>A value indicating whether the entry was found and canceled.</returns>
        </member>
        <member name="M:Catel.Threading.IAsyncWaitQueue`1.CancelAll">
            <summary>
            Removes all entries from the wait queue. Returns a disposable that cancels all entries.
            </summary>
        </member>
        <member name="T:Catel.Threading.Deque`1">
            <summary>
            A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle).
            </summary>
            <typeparam name="T">The type of elements contained in the deque.</typeparam>
            <remarks>
            This code originally comes from AsyncEx: https://github.com/StephenCleary/AsyncEx
            </remarks>
        </member>
        <member name="F:Catel.Threading.Deque`1.DefaultCapacity">
            <summary>
            The default capacity.
            </summary>
        </member>
        <member name="F:Catel.Threading.Deque`1.buffer">
            <summary>
            The circular buffer that holds the view.
            </summary>
        </member>
        <member name="F:Catel.Threading.Deque`1.offset">
            <summary>
            The offset into <see cref="F:Catel.Threading.Deque`1.buffer"/> where the view begins.
            </summary>
        </member>
        <member name="M:Catel.Threading.Deque`1.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Deque`1"/> class with the specified capacity.
            </summary>
            <param name="capacity">The initial capacity. Must be greater than <c>0</c>.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Deque`1"/> class with the elements from the specified collection.
            </summary>
            <param name="collection">The collection.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Deque`1"/> class.
            </summary>
        </member>
        <member name="P:Catel.Threading.Deque`1.IsEmpty">
            <summary>
            Gets a value indicating whether this instance is empty.
            </summary>
        </member>
        <member name="P:Catel.Threading.Deque`1.IsFull">
            <summary>
            Gets a value indicating whether this instance is at full capacity.
            </summary>
        </member>
        <member name="P:Catel.Threading.Deque`1.IsSplit">
            <summary>
            Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in <see cref="F:Catel.Threading.Deque`1.buffer"/> than the end).
            </summary>
        </member>
        <member name="P:Catel.Threading.Deque`1.Capacity">
            <summary>
            Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than <see cref="P:Catel.Threading.Deque`1.Count"/>.
            </summary>
            <exception cref="T:System.InvalidOperationException"><c>Capacity</c> cannot be set to a value less than <see cref="P:Catel.Threading.Deque`1.Count"/>.</exception>
        </member>
        <member name="P:Catel.Threading.Deque`1.Count">
            <summary>
            Gets the number of elements contained in this deque.
            </summary>
            <returns>The number of elements contained in this deque.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.Clear">
            <summary>
            Removes all items from this deque.
            </summary>
        </member>
        <member name="M:Catel.Threading.Deque`1.DequeIndexToBufferIndex(System.Int32)">
            <summary>
            Applies the offset to <paramref name="index"/>, resulting in a buffer index.
            </summary>
            <param name="index">The deque index.</param>
            <returns>The buffer index.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoGetItem(System.Int32)">
            <summary>
            Gets an element at the specified view index.
            </summary>
            <param name="index">The zero-based view index of the element to get. This index is guaranteed to be valid.</param>
            <returns>The element at the specified index.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoSetItem(System.Int32,`0)">
            <summary>
            Sets an element at the specified view index.
            </summary>
            <param name="index">The zero-based view index of the element to get. This index is guaranteed to be valid.</param>
            <param name="item">The element to store in the list.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoInsert(System.Int32,`0)">
            <summary>
            Inserts an element at the specified view index.
            </summary>
            <param name="index">The zero-based view index at which the element should be inserted. This index is guaranteed to be valid.</param>
            <param name="item">The element to store in the list.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoRemoveAt(System.Int32)">
            <summary>
            Removes an element at the specified view index.
            </summary>
            <param name="index">The zero-based view index of the element to remove. This index is guaranteed to be valid.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.PostIncrement(System.Int32)">
            <summary>
            Increments <see cref="F:Catel.Threading.Deque`1.offset"/> by <paramref name="value"/> using modulo-<see cref="P:Catel.Threading.Deque`1.Capacity"/> arithmetic.
            </summary>
            <param name="value">The value by which to increase <see cref="F:Catel.Threading.Deque`1.offset"/>. May not be negative.</param>
            <returns>The value of <see cref="F:Catel.Threading.Deque`1.offset"/> after it was incremented.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.PreDecrement(System.Int32)">
            <summary>
            Decrements <see cref="F:Catel.Threading.Deque`1.offset"/> by <paramref name="value"/> using modulo-<see cref="P:Catel.Threading.Deque`1.Capacity"/> arithmetic.
            </summary>
            <param name="value">The value by which to reduce <see cref="F:Catel.Threading.Deque`1.offset"/>. May not be negative or greater than <see cref="P:Catel.Threading.Deque`1.Capacity"/>.</param>
            <returns>The value of <see cref="F:Catel.Threading.Deque`1.offset"/> before it was decremented.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoAddToBack(`0)">
            <summary>
            Inserts a single element to the back of the view. <see cref="P:Catel.Threading.Deque`1.IsFull"/> must be false when this method is called.
            </summary>
            <param name="value">The element to insert.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoAddToFront(`0)">
            <summary>
            Inserts a single element to the front of the view. <see cref="P:Catel.Threading.Deque`1.IsFull"/> must be false when this method is called.
            </summary>
            <param name="value">The element to insert.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoRemoveFromBack">
            <summary>
            Removes and returns the last element in the view. <see cref="P:Catel.Threading.Deque`1.IsEmpty"/> must be false when this method is called.
            </summary>
            <returns>The former last element.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoRemoveFromFront">
            <summary>
            Removes and returns the first element in the view. <see cref="P:Catel.Threading.Deque`1.IsEmpty"/> must be false when this method is called.
            </summary>
            <returns>The former first element.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoInsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Inserts a range of elements into the view.
            </summary>
            <param name="index">The index into the view at which the elements are to be inserted.</param>
            <param name="collection">The elements to insert.</param>
            <param name="collectionCount">The number of elements in <paramref name="collection"/>. Must be greater than zero, and the sum of <paramref name="collectionCount"/> and <see cref="P:Catel.Threading.Deque`1.Count"/> must be less than or equal to <see cref="P:Catel.Threading.Deque`1.Capacity"/>.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.DoRemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from the view.
            </summary>
            <param name="index">The index into the view at which the range begins.</param>
            <param name="collectionCount">The number of elements in the range. This must be greater than 0 and less than or equal to <see cref="P:Catel.Threading.Deque`1.Count"/>.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.EnsureCapacityForOneElement">
            <summary>
            Doubles the capacity if necessary to make room for one more element. When this method returns, <see cref="P:Catel.Threading.Deque`1.IsFull"/> is false.
            </summary>
        </member>
        <member name="M:Catel.Threading.Deque`1.AddToBack(`0)">
            <summary>
            Inserts a single element at the back of this deque.
            </summary>
            <param name="value">The element to insert.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.AddToFront(`0)">
            <summary>
            Inserts a single element at the front of this deque.
            </summary>
            <param name="value">The element to insert.</param>
        </member>
        <member name="M:Catel.Threading.Deque`1.InsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Inserts a collection of elements into this deque.
            </summary>
            <param name="index">The index at which the collection is inserted.</param>
            <param name="collection">The collection of elements to insert.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an insertion point for the source.</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.RemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from this deque.
            </summary>
            <param name="offset">The index into the deque at which the range begins.</param>
            <param name="count">The number of elements to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Either <paramref name="offset"/> or <paramref name="count"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The range [<paramref name="offset"/>, <paramref name="offset"/> + <paramref name="count"/>) is not within the range [0, <see cref="P:Catel.Threading.Deque`1.Count"/>).</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.RemoveFromBack">
            <summary>
            Removes and returns the last element of this deque.
            </summary>
            <returns>The former last element.</returns>
            <exception cref="T:System.InvalidOperationException">The deque is empty.</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.RemoveFromFront">
            <summary>
            Removes and returns the first element of this deque.
            </summary>
            <returns>The former first element.</returns>
            <exception cref="T:System.InvalidOperationException">The deque is empty.</exception>
        </member>
        <member name="P:Catel.Threading.Deque`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
            <summary>
            Gets a value indicating whether this list is read-only. This implementation always returns <c>false</c>.
            </summary>
            <returns>true if this list is read-only; otherwise, false.</returns>
        </member>
        <member name="P:Catel.Threading.Deque`1.Item(System.Int32)">
            <summary>
            Gets or sets the item at the specified index.
            </summary>
            <param name="index">The index of the item to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in this list.</exception>
            <exception cref="T:System.NotSupportedException">This property is set and the list is read-only.</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item to this list at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into this list.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="index"/> is not a valid index in this list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            This list is read-only.
            </exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.RemoveAt(System.Int32)">
            <summary>
            Removes the item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="index"/> is not a valid index in this list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            This list is read-only.
            </exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in this list.
            </summary>
            <param name="item">The object to locate in this list.</param>
            <returns>The index of <paramref name="item"/> if found in this list; otherwise, -1.</returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>
            Adds an item to the end of this list.
            </summary>
            <param name="item">The object to add to this list.</param>
            <exception cref="T:System.NotSupportedException">
            This list is read-only.
            </exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.System#Collections#Generic#ICollection{T}#Contains(`0)">
            <summary>
            Determines whether this list contains a specific value.
            </summary>
            <param name="item">The object to locate in this list.</param>
            <returns>
            true if <paramref name="item"/> is found in this list; otherwise, false.
            </returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.System#Collections#Generic#ICollection{T}#CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of this list to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from this slice. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="array"/> is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="arrayIndex"/> is less than 0.
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.
            -or-
            The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from this list.
            </summary>
            <param name="item">The object to remove from this list.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from this list; otherwise, false. This method also returns false if <paramref name="item"/> is not found in this list.
            </returns>
            <exception cref="T:System.NotSupportedException">
            This list is read-only.
            </exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:Catel.Threading.Deque`1.CheckNewIndexArgument(System.Int32,System.Int32)">
            <summary>
            Checks the <paramref name="index"/> argument to see if it refers to a valid insertion point in a source of a given length.
            </summary>
            <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
            <param name="index">The index into the source.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an insertion point for the source.</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.CheckExistingIndexArgument(System.Int32,System.Int32)">
            <summary>
            Checks the <paramref name="index"/> argument to see if it refers to an existing element in a source of a given length.
            </summary>
            <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
            <param name="index">The index into the source.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an existing element for the source.</exception>
        </member>
        <member name="M:Catel.Threading.Deque`1.CheckRangeArguments(System.Int32,System.Int32,System.Int32)">
            <summary>
            Checks the <paramref name="offset"/> and <paramref name="count"/> arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source.
            </summary>
            <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
            <param name="offset">The index into source at which the range begins.</param>
            <param name="count">The number of elements in the range.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Either <paramref name="offset"/> or <paramref name="count"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The range [offset, offset + count) is not within the range [0, sourceLength).</exception>
        </member>
        <member name="T:Catel.Threading.SynchronizationContext">
            <summary>
            Provides a syncronization context to acquire or release exclusive lock of an object and execute thread safe code.
            </summary>
            <remarks>
            Be aware when you use this class. If it is improperly used could provoke dead locks.
            </remarks>
        </member>
        <member name="F:Catel.Threading.SynchronizationContext._syncObj">
            <summary>
            The sync obj.
            </summary>
        </member>
        <member name="P:Catel.Threading.SynchronizationContext.IsLockAcquired">
            <summary>
            Gets a value indicating whether is the lock is acquired.
            </summary>
        </member>
        <member name="M:Catel.Threading.SynchronizationContext.Execute(System.Action)">
            <summary>
            This method execute the <paramref name="code" /> into a exclusive lock.
            </summary>
            <param name="code">The code to be executed.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
            <remarks>If the lock is acquired before call this method, then the <paramref name="code" /> execution is delayed until the lock would released.</remarks>
        </member>
        <member name="M:Catel.Threading.SynchronizationContext.Execute``1(System.Func{``0})">
            <summary>
            This method execute the <paramref name="code" /> into a exclusive lock and returns a value.
            </summary>
            <typeparam name="T">The result type.</typeparam>
            <param name="code">The code to be executed.</param>
            <returns>The result of execute the code.</returns>
            <exception cref="T:System.ArgumentNullException">If <paramref name="code" /> is <c>null</c>.</exception>
            <remarks>If the lock is acquired before call this method, then the <paramref name="code" /> execution is delayed until the lock would released, blocking the current thread.</remarks>
        </member>
        <member name="M:Catel.Threading.SynchronizationContext.Acquire">
            <summary>
            Acquires an exclusive lock.
            </summary>
        </member>
        <member name="M:Catel.Threading.SynchronizationContext.Release">
            <summary>
            Releases an exclusive lock.
            </summary>
        </member>
        <member name="T:Catel.Threading.Timeout">
            <summary>
            The timeout class.
            </summary>
        </member>
        <member name="F:Catel.Threading.Timeout.Infinite">
            <summary>
            A constant used to specify an infinite waiting period, for threading methods that accept an Int32 parameter.
            </summary>
        </member>
        <member name="F:Catel.Threading.Timeout.InfiniteTimeSpan">
            <summary>
            A constant used to specify an infinite waiting period, for threading methods that accept an TimeSpan parameter.
            </summary>
        </member>
        <member name="T:Catel.Threading.TimerCallback">
            <summary>
            Timer callback delegate.
            </summary>
            <param name="state">The state.</param>
        </member>
        <member name="T:Catel.Threading.Timer">
            <summary>
            Timer for WinRT since WinRT only provides the DispatcherTimer which cannot be used outside the UI thread.
            </summary>
        </member>
        <member name="M:Catel.Threading.Timer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Timer"/> class.
            </summary>
        </member>
        <member name="M:Catel.Threading.Timer.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Timer"/> class.
            </summary>
            <param name="interval">The interval in milliseconds.</param>
        </member>
        <member name="M:Catel.Threading.Timer.#ctor(Catel.Threading.TimerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Timer"/> class.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="M:Catel.Threading.Timer.#ctor(Catel.Threading.TimerCallback,System.Object,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Timer" /> class.
            </summary>
            <param name="callback">The callback.</param>
            <param name="state">The state.</param>
            <param name="dueTime">The due time.</param>
            <param name="interval">The interval.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="callback" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.Threading.Timer.#ctor(Catel.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.Threading.Timer" /> class.
            </summary>
            <param name="callback">The callback.</param>
            <param name="state">The state.</param>
            <param name="dueTime">The due time.</param>
            <param name="interval">The interval.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="callback" /> is <c>null</c>.</exception>
        </member>
        <member name="P:Catel.Threading.Timer.Interval">
            <summary>
            Gets or sets the interval.
            </summary>
            <value>The interval.</value>
        </member>
        <member name="E:Catel.Threading.Timer.Elapsed">
            <summary>
            Occurs when the interval elapses.
            </summary>
        </member>
        <member name="M:Catel.Threading.Timer.Change(System.Int32,System.Int32)">
            <summary>
            Changes the specified interval.
            </summary>
            <param name="dueTime">The due time.</param>
            <param name="interval">The interval.</param>
        </member>
        <member name="M:Catel.Threading.Timer.Change(System.TimeSpan,System.TimeSpan)">
            <summary>
            Changes the specified interval.
            </summary>
            <param name="dueTime">The due time.</param>
            <param name="interval">The interval.</param>
        </member>
        <member name="M:Catel.Threading.Timer.SetUpTimer(System.TimeSpan,System.TimeSpan)">
            <summary>
            Sets up the timer.
            </summary>
            <param name="dueTime"></param>
            <param name="interval"></param>
        </member>
        <member name="M:Catel.Threading.Timer.Start(System.Threading.CancellationToken)">
            <summary>
            Starts the timer.
            </summary>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="M:Catel.Threading.Timer.Stop">
            <summary>
            Stops the timer.
            </summary>
        </member>
        <member name="M:Catel.Threading.Timer.ContinueTimer(System.Threading.Tasks.Task,System.Object)">
            <summary>
            Continues the timer.
            </summary>
            <param name="t">The task.</param>
            <param name="state">The state which must be the cancellation token.</param>
        </member>
        <member name="M:Catel.Threading.Timer.TimerElapsed">
            <summary>
            Called when the interval elapses.
            </summary>
        </member>
        <member name="M:Catel.Threading.Timer.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:Catel.ThreadHelper">
            <summary>
            Helper class for thread methods.
            </summary>
        </member>
        <member name="M:Catel.ThreadHelper.GetCurrentThreadId">
            <summary>
            Gets the current thread identifier.
            </summary>
            <returns>System.String.</returns>
        </member>
        <member name="M:Catel.ThreadHelper.Sleep(System.Int32)">
            <summary>
            Lets the current execution thread sleep for the specified milliseconds.
            <para />
            In WinRT, this method uses the Task to delay.
            </summary>
            <param name="millisecondsTimeout">The milliseconds timeout.</param>
        </member>
        <member name="M:Catel.ThreadHelper.SpinWait(System.Int32)">
            <summary>
            Causes a thread to wait the number of times defined by the iterations parameter.
            </summary>
            <param name="iterations">The number of iterations.</param>
        </member>
        <member name="T:Catel.IExecute">
            <summary>
            Interface defining a method to execute the object. This allows several classes to be executed
            without the know-how of the types itself, as long as they implement this interface.
            </summary>
        </member>
        <member name="M:Catel.IExecute.Execute">
            <summary>
            Executes the object without any parameters.
            </summary>
            <returns><c>true</c> if the action is executed successfully; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:Catel.IExecuteWithObject">
            <summary>
            Interface defining a method accepting an object parameter. This allows the execution
            of generic objects in a non-generic way.
            </summary>
        </member>
        <member name="M:Catel.IExecuteWithObject.ExecuteWithObject(System.Object)">
            <summary>
            Executes the object with the object parameter.
            <para />
            The class implementing this interface is responsible for casting the <paramref name="parameter"/>
            to the right type and to determine whether <c>null</c> is allowed as parameter.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns><c>true</c> if the action is executed successfully; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:Catel.IWeakAction">
            <summary>
            A weak action which allows the invocation of a command in a weak manner. This way, actions will not cause
            memory leaks.
            </summary>
        </member>
        <member name="P:Catel.IWeakAction.MethodName">
            <summary>
            Gets the name of the method that should be executed.
            </summary>
            <value>The method name.</value>
        </member>
        <member name="P:Catel.IWeakAction.Action">
            <summary>
            Gets the actual delegate to invoke.
            </summary>
            <value>The method name.</value>
            <remarks>
            This property is only introduced to allow action comparison on WinRT. Do not try to use this method by yourself.
            </remarks>
        </member>
        <member name="T:Catel.IWeakAction`1">
            <summary>
            A generic weak action which allows the invocation of a command in a weak manner. This way, actions will not
            cause memory leaks.
            </summary>
            <typeparam name="TParameter">The type of the parameter.</typeparam>
        </member>
        <member name="P:Catel.IWeakAction`1.MethodName">
            <summary>
            Gets the name of the method that should be executed.
            </summary>
            <value>The method name.</value>
        </member>
        <member name="P:Catel.IWeakAction`1.Action">
            <summary>
            Gets the actual delegate to invoke.
            </summary>
            <value>The method name.</value>
            <remarks>
            This property is only introduced to allow action comparison on WinRT. Do not try to use this method by yourself.
            </remarks>
        </member>
        <member name="M:Catel.IWeakAction`1.Execute(`0)">
            <summary>
            Executes the action. This only happens if the action's target is still alive.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns><c>true</c> if the action is executed successfully; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:Catel.IWeakEventListener">
            <summary>
            Interface defining a weak event listener.
            </summary>
        </member>
        <member name="P:Catel.IWeakEventListener.TargetType">
            <summary>
            Gets the type of the target.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="P:Catel.IWeakEventListener.Target">
            <summary>
            Gets the actual target object. This property returns <c>null</c> if the handler is static or
            the target is no longer alive.
            </summary>
        </member>
        <member name="P:Catel.IWeakEventListener.TargetWeakReference">
            <summary>
            Gets the target weak reference.
            </summary>
            <value>The target weak reference.</value>
        </member>
        <member name="P:Catel.IWeakEventListener.SourceType">
            <summary>
            Gets the type of the source.
            </summary>
            <value>The type of the source.</value>
        </member>
        <member name="P:Catel.IWeakEventListener.Source">
            <summary>
            Gets the actual source object. This property returns <c>null</c> if the event is static or
            the source is no longer alive.
            </summary>
        </member>
        <member name="P:Catel.IWeakEventListener.SourceWeakReference">
            <summary>
            Gets the source weak reference.
            </summary>
            <value>The source weak reference.</value>
        </member>
        <member name="P:Catel.IWeakEventListener.EventArgsType">
            <summary>
            Gets the type of the event args.
            </summary>
            <value>The type of the event args.</value>
        </member>
        <member name="P:Catel.IWeakEventListener.IsSourceAlive">
            <summary>
            Gets a value indicating whether the event source has not yet been garbage collected.
            </summary>
            <value>
            <c>true</c> if the event source has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static events, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.IWeakEventListener.IsTargetAlive">
            <summary>
            Gets a value indicating whether the event target has not yet been garbage collected.
            </summary>
            <value>
            <c>true</c> if the event target has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static event handlers, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.IWeakEventListener.IsStaticEvent">
            <summary>
            Gets a value indicating whether this instance represents a static event.
            </summary>
            <value>
            	<c>true</c> if this instance represents a static event; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.IWeakEventListener.IsStaticEventHandler">
            <summary>
            Gets a value indicating whether this instance represents a static event handler.
            </summary>
            <value>
            <c>true</c> if this instance represents a static event handler; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Catel.IWeakEventListener.Detach">
            <summary>
            Detaches from the subscribed event.
            </summary>
        </member>
        <member name="T:Catel.IWeakReference">
            <summary>
            Weak reference interface.
            </summary>
        </member>
        <member name="P:Catel.IWeakReference.IsTargetAlive">
            <summary>
            Gets a value indicating whether the target has not yet been garbage collected.
            </summary>
            <value>
            	<c>true</c> if the target has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static event handlers, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.IWeakReference.Target">
            <summary>
            Gets the target of the weak reference. Will be <c>null</c> when the target is no longer alive.
            </summary>
            <remarks>
            In case of static event handlers, this property always returns <c>null</c>.
            </remarks>
        </member>
        <member name="T:Catel.WeakActionBase">
            <summary>
            Base class for weak actions that contain weak targets.
            </summary>
        </member>
        <member name="F:Catel.WeakActionBase._weakTarget">
            <summary>
            WeakReference to the target listening for the event.
            </summary>
        </member>
        <member name="M:Catel.WeakActionBase.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.WeakActionBase"/> class.
            </summary>
            <param name="target">The target of the weak action.</param>
            <exception cref="T:System.ArgumentException">The <paramref name="target"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="P:Catel.WeakActionBase.Target">
            <summary>
            Gets the target or <c>null</c> if the target is garbage collected.
            </summary>
            <value>The target.</value>
        </member>
        <member name="P:Catel.WeakActionBase.IsTargetAlive">
            <summary>
            Gets a value indicating whether the event target has not yet been garbage collected.
            </summary>
            <value>
            <c>true</c> if the event target has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static event handlers, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="T:Catel.WeakAction">
            <summary>
            A weak action which allows the invocation of a command in a weak manner. This way, actions will not cause
            memory leaks.
            </summary>
        </member>
        <member name="T:Catel.WeakAction.OpenInstanceAction`1">
            <summary>
            Open instance action which allows the creation of an instance method without an actual reference
            to the target.
            </summary>
        </member>
        <member name="F:Catel.WeakAction.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.WeakAction._action">
            <summary>
            The action that must be invoked on the action.
            </summary>
        </member>
        <member name="M:Catel.WeakAction.#ctor(System.Object,System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.WeakAction"/> class.
            </summary>
            <param name="target">The target.</param>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="action"/> is an anonymous delegate.</exception>
        </member>
        <member name="P:Catel.WeakAction.MethodName">
            <summary>
            Gets the name of the method that should be executed.
            </summary>
            <value>The method name.</value>
        </member>
        <member name="P:Catel.WeakAction.Action">
            <summary>
            Gets the actual delegate to invoke.
            </summary>
            <value>The method name.</value>
            <remarks>
            This property is only introduced to allow action comparison on WinRT. Do not try to use this method by yourself.
            </remarks>
        </member>
        <member name="M:Catel.WeakAction.Execute">
            <summary>
            Executes the action. This only happens if the action's target is still alive.
            </summary>
            <returns>
            <c>true</c> if the action is executed successfully; otherwise <c>false</c>.
            </returns>
        </member>
        <member name="T:Catel.WeakAction`1">
            <summary>
            A generic weak action which allows the invocation of a command in a weak manner. This way, actions will not 
            cause memory leaks.
            </summary>
        </member>
        <member name="T:Catel.WeakAction`1.OpenInstanceGenericAction`1">
            <summary>
            Open instance action which allows the creation of an instance method without an actual reference
            to the target.
            </summary>
        </member>
        <member name="F:Catel.WeakAction`1.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.WeakAction`1._action">
            <summary>
            The action that must be invoked on the action.
            </summary>
        </member>
        <member name="M:Catel.WeakAction`1.#ctor(System.Object,System.Action{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Catel.WeakAction"/> class.
            </summary>
            <param name="target">The target.</param>
            <param name="action">The action.</param> 
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is <c>null</c>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="action"/> is an anonymous delegate.</exception>
        </member>
        <member name="P:Catel.WeakAction`1.MethodName">
            <summary>
            Gets the name of the method that should be executed.
            </summary>
            <value>The method name.</value>
        </member>
        <member name="P:Catel.WeakAction`1.Action">
            <summary>
            Gets the actual delegate to invoke.
            </summary>
            <value>The method name.</value>
            <remarks>
            This property is only introduced to allow action comparison on WinRT. Do not try to use this method by yourself.
            </remarks>
        </member>
        <member name="M:Catel.WeakAction`1.Execute(`0)">
            <summary>
            Executes the action. This only happens if the action's target is still alive.
            </summary>
            <param name="parameter">The parameter.</param>
        </member>
        <member name="M:Catel.WeakAction`1.Catel#IExecuteWithObject#ExecuteWithObject(System.Object)">
            <summary>
            Executes the object with the object parameter.
            <para/>
            The class implementing this interface is responsible for casting the <paramref name="parameter"/>
            to the right type and to determine whether <c>null</c> is allowed as parameter.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>
            <c>true</c> if the action is executed successfully; otherwise <c>false</c>.
            </returns>
        </member>
        <member name="T:Catel.WeakEventListener`3">
             <summary>
             Implements a weak event listener that allows the owner to be garbage
             collected if its only remaining link is an event handler.
             </summary>
             <typeparam name="TSource">Type of source for the event.</typeparam>
             <typeparam name="TTarget">Type of target listening for the event.</typeparam>
             <typeparam name="TEventArgs">Type of event arguments for the event.</typeparam>
             <example>
             Initially, the code must be used in this way: 
             <para />
             <code>
              <![CDATA[
                 var source = new EventSource();
                 var listener = new EventListener();
            
                 WeakEventListener<EventListener, EventSource, EventArgs>.SubscribeToWeakEvent(listener, source, "Event", listener.OnEvent);
             ]]>
             </code>
             </example>
        </member>
        <member name="T:Catel.WeakEventListener`3.OpenInstanceHandler">
            <summary>
            Open instance delegate which allows the creation of an instance method without an actual reference
            to the target.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3._weakTarget">
            <summary>
            WeakReference to the target listening for the event.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3._weakSource">
            <summary>
            To hold a reference to source object. With this instance the WeakEventListener 
            can guarantee that the handler get unregistered when listener is released.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3._automaticallySubscribedEventName">
            <summary>
            The event name this listener is automatically subscribed to. If this value is <c>null</c>, the
            listener is not automatically registered to any event.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3._internalEventDelegate">
            <summary>
            Delegate that needs to be unsubscribed when registered automatically.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`3._typeForEventSubscriptions">
            <summary>
            The type for event subscriptions. This can differ from TSource for explicitly implemented events.
            </summary>
        </member>
        <member name="M:Catel.WeakEventListener`3.#ctor(`0,`1,System.Type)">
            <summary>
            Initializes a new instances of the WeakEventListener class.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="typeForEventSubscriptions">The type for event subscriptions.</param>
        </member>
        <member name="P:Catel.WeakEventListener`3.OnEventAction">
            <summary>
            Gets or sets the method to call when the event fires.
            </summary>
        </member>
        <member name="P:Catel.WeakEventListener`3.OnStaticEventAction">
            <summary>
            Gets or sets the method to call when the static event fires.
            </summary>
            <value>The on static event action.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.Target">
            <summary>
            Gets the target or <c>null</c> if there is no target.
            </summary>
            <value>The target.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.TargetWeakReference">
            <summary>
            Gets the target weak reference.
            </summary>
            <value>The target weak reference.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.Source">
            <summary>
            Gets the source or <c>null</c> if there is no source.
            </summary>
            <value>The target.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.SourceWeakReference">
            <summary>
            Gets the source weak reference.
            </summary>
            <value>The source weak reference.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.TargetType">
            <summary>
            Gets the type of the target.
            </summary>
            <value>The type of the target.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.SourceType">
            <summary>
            Gets the type of the source.
            </summary>
            <value>The type of the source.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.EventArgsType">
            <summary>
            Gets the type of the event args.
            </summary>
            <value>The type of the event args.</value>
        </member>
        <member name="P:Catel.WeakEventListener`3.IsSourceAlive">
            <summary>
            Gets a value indicating whether the event source has not yet been garbage collected.
            </summary>
            <value>
            <c>true</c> if the event source has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static events, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.WeakEventListener`3.IsTargetAlive">
            <summary>
            Gets a value indicating whether the event target has not yet been garbage collected.
            </summary>
            <value>
            <c>true</c> if the event target has not yet been garbage collected; otherwise, <c>false</c>.
            </value>
            <remarks>
            In case of static event handlers, this property always returns <c>false</c>.
            </remarks>
        </member>
        <member name="P:Catel.WeakEventListener`3.IsStaticEvent">
            <summary>
            Gets a value indicating whether this instance represents a static event.
            </summary>
            <value>
            <c>true</c> if this instance represents a static event; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Catel.WeakEventListener`3.IsStaticEventHandler">
            <summary>
            Gets a value indicating whether this instance represents a static event handler.
            </summary>
            <value>
            <c>true</c> if this instance represents a static event handler; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakGenericEvent(`0,`1,System.String,System.EventHandler{`2})">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakGenericEvent(`0,`1,System.String,System.EventHandler{`2},System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakPropertyChangedEvent(`0,`1,System.ComponentModel.PropertyChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakPropertyChangedEvent(`0,`1,System.ComponentModel.PropertyChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakCollectionChangedEvent(`0,`1,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakCollectionChangedEvent(`0,`1,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakEvent(`0,`1,System.String,System.Delegate)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakEvent(`0,`1,System.String,System.Delegate,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakEventWithExplicitSourceType``1(`0,`1,System.String,System.Delegate)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TExplicitSourceType">The final source type, which must be specified for explicitly implemented events.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToWeakEventWithExplicitSourceType``1(`0,`1,System.String,System.Delegate,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TExplicitSourceType">The final source type, which must be specified for explicitly implemented events.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>The created event listener.</returns>
            <exception cref="T:System.NotSupportedException"></exception>
            <exception cref="T:System.InvalidOperationException"></exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler" /> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source" /> and <paramref name="target" /> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName" /> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler" /> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToEvent(System.Object,System.String,System.Boolean)">
            <summary>
            Subscribes to the specific event. If the event occurs, the <see cref="M:Catel.WeakEventListener`3.OnEvent(System.Object,`2)" /> method will be invoked.
            </summary>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="throwOnError">if set to <c>true</c>, throw an exception when an error occurs.</param>
            <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToEventUsingNormalImplementation(System.Object,System.String)">
            <summary>
            Subscribes to the specific event using normal implementations. If the event occurs, the
            <see cref="M:Catel.WeakEventListener`3.OnEvent(System.Object,`2)" /> method will be invoked.
            </summary>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <returns><c>true</c> if subscribed successfully, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.SubscribeToEventUsingMethodInfo(System.Object,System.Reflection.MethodInfo)">
            <summary>
            Subscribes to the event using method.
            </summary>
            <param name="source">The source.</param>
            <param name="methodInfo">The method info.</param>
            <returns><c>true</c> if subscribed successfully, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="methodInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.UnsubscribeFromEvent(System.Object,System.String)">
            <summary>
            Unsubscribes from the specific event. If the event occurs, the <see cref="M:Catel.WeakEventListener`3.OnEvent(System.Object,`2)"/> method will no longer be invoked.
            </summary>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.UnsubscribeFromEventUsingNormalImplementation(System.Object,System.String)">
            <summary>
            Unsubscribes from the specific event using normal implementations.
            </summary>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <returns><c>true</c> if subscribed successfully, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.UnsubscribeFromEventUsingExplicitInterfaceImplementation(System.Object,System.String)">
            <summary>
            Unsubscribes from the specific event using explicit interface implementations.
            </summary>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <returns><c>true</c> if subscribed successfully, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.UnsubscribeFromEventUsingMethodInfo(System.Object,System.Reflection.MethodInfo)">
            <summary>
            Unsubscribes from the event using method.
            </summary>
            <param name="source">The source.</param>
            <param name="methodInfo">The method info.</param>
            <returns><c>true</c> if subscribed successfully, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="methodInfo" /> is <c>null</c>.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`3.OnEvent(System.Object,`2)">
            <summary>
            Handler for the subscribed event calls OnEventAction to handle it.
            </summary>
            <param name="source">Event source.</param>
            <param name="eventArgs">Event arguments.</param>
        </member>
        <member name="M:Catel.WeakEventListener`3.Detach">
            <summary>
            Detaches from the subscribed event.
            </summary>
        </member>
        <member name="T:Catel.WeakEventListener`2">
            <summary>
            Convenience implementation of the <see cref="T:Catel.WeakEventListener`3"/> that automatically determines the type
            of the event args.
            </summary>
            <typeparam name="TTarget">The type of the target.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
        </member>
        <member name="F:Catel.WeakEventListener`2.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="F:Catel.WeakEventListener`2.EventHandlerEventArgsCache">
            <summary>
            The event handler event arguments cache.
            </summary>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakGenericEvent``1(`0,`1,System.String,System.EventHandler{``0})">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TEventArgs">The type of the event args.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>The created event listener.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>,
            <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakPropertyChangedEvent(`0,`1,System.ComponentModel.PropertyChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakPropertyChangedEvent(`0,`1,System.ComponentModel.PropertyChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakCollectionChangedEvent(`0,`1,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakCollectionChangedEvent(`0,`1,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakEvent(`0,`1,System.String,System.Delegate)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, 
            <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakEvent(`0,`1,System.String,System.Delegate,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, 
            <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakEventWithExplicitSourceType``1(`0,`1,System.String,System.Delegate)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TExplicitSourceType">The final source type, which must be specified for explicitly implemented events.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener`2.SubscribeToWeakEventWithExplicitSourceType``1(`0,`1,System.String,System.Delegate,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TExplicitSourceType">The final source type, which must be specified for explicitly implemented events.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="T:Catel.WeakEventListener">
            <summary>
            Convenience implementation of the <see cref="T:Catel.WeakEventListener`3"/> that automatically determines the type
            of the event source, the event target and the event args.
            </summary>
            <remarks>
            This class can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
        </member>
        <member name="F:Catel.WeakEventListener.Log">
            <summary>
            The log.
            </summary>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakGenericEvent``1(System.Object,System.Object,System.String,System.EventHandler{``0})">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TEventArgs">The type of the event args.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>The created event listener.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>,
            <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakGenericEvent``1(System.Object,System.Object,System.String,System.EventHandler{``0},System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <typeparam name="TEventArgs">The type of the event args.</typeparam>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>The created event listener.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName" /> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler" /> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source" /> and <paramref name="target" /> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName" /> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler" /> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler" />,
            <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler" /> or <see cref="T:System.EventHandler`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler" /> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakPropertyChangedEvent(System.Object,System.Object,System.ComponentModel.PropertyChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakPropertyChangedEvent(System.Object,System.Object,System.ComponentModel.PropertyChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakCollectionChangedEvent(System.Object,System.Object,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakCollectionChangedEvent(System.Object,System.Object,System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.Boolean,System.String)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            <para />
            This method subscribes to the <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> which does not follow the <c>EventHandler{TEventArgs}</c> convention.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <param name="eventName">Name of the event.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakEvent(System.Object,System.Object,System.String,System.Delegate)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakEvent(System.Object,System.Object,System.String,System.Delegate,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="M:Catel.WeakEventListener.SubscribeToWeakEvent(System.Object,System.Object,System.String,System.Delegate,System.Type,System.Boolean)">
            <summary>
            Subscribes to a weak event by using one single method. This method also takes care of automatic
            unsubscription of the event.
            </summary>
            <param name="target">Instance subscribing to the event, should be <c>null</c> for static event handlers.</param>
            <param name="source">The source of the event, should be <c>null</c> for static events.</param>
            <param name="eventName">Name of the event.</param>
            <param name="handler">The handler to execute when the event occurs.</param>
            <param name="eventSourceType">The event source to use for type implementations. Differs from the source type for explicitly implemented events.</param>
            <param name="throwWhenSubscriptionFails">if set to <c>true</c>, throw an exception when subscription fails (does not apply to argument checks).</param>
            <returns>
            The created event listener.
            </returns>
            <remarks>
            This method can only be used for non-static event sources and targets. If static events or listeners are required, use
            the <see cref="T:Catel.WeakEventListener`3"/> class.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="eventName"/> is <c>null</c> or whitespace.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="handler"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="source"/> and <paramref name="target"/> are both <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="eventName"/> does not exist or not accessible.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is not of type <see cref="T:System.ComponentModel.PropertyChangedEventHandler"/>, <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventHandler"/> or <see cref="T:System.EventHandler`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="handler"/> is an anonymous delegate.</exception>
        </member>
        <member name="T:System.ComponentModel.BeginEditEventArgs">
            <summary>
            Event args implementation called when the object is about to call <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/>. This way,
            it is possible to cancel the events.
            </summary>
        </member>
        <member name="M:System.ComponentModel.BeginEditEventArgs.#ctor(System.ComponentModel.IEditableObject)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.BeginEditEventArgs"/> class.
            </summary>
            <param name="editableObject">The editable object.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="editableObject"/> is <c>null</c>.</exception>
        </member>
        <member name="T:System.ComponentModel.CancelEditCompletedEventArgs">
            <summary>
            Event args implementation called when the objects cancel edit operation has completed.
            </summary>
        </member>
        <member name="M:System.ComponentModel.CancelEditCompletedEventArgs.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.CancelEditCompletedEventArgs"/> class.
            </summary>
            <param name="wasCanceled">  If true, the cancel operation was canceled.
            If false, the cancel operation ran to completion.</param>
        </member>
        <member name="P:System.ComponentModel.CancelEditCompletedEventArgs.IsCancelOperationCanceled">
            <summary>
            Gets or sets the value indicating if the cancel operation canceled.
            </summary>
            <remarks>If <c>true</c>, the cancel operation was canceled and the operation is complete.
            If <c>false</c>, the cancel operation was allowed to continue and all cancel operations
            are complete.</remarks>
        </member>
        <member name="T:System.ComponentModel.CancelEditEventArgs">
            <summary>
            Event args implementation called when the object is about to call <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/>. This way,
            it is possible to cancel the events.
            </summary>
        </member>
        <member name="M:System.ComponentModel.CancelEditEventArgs.#ctor(System.ComponentModel.IEditableObject)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.CancelEditEventArgs"/> class.
            </summary>
            <param name="editableObject">The editable object.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="editableObject"/> is <c>null</c>.</exception>
        </member>
        <member name="T:System.ComponentModel.EditEventArgs">
            <summary>
            Event args class containing information about events that occur in the <see cref="T:System.ComponentModel.IAdvancedEditableObject"/>
            interface.
            </summary>
        </member>
        <member name="M:System.ComponentModel.EditEventArgs.#ctor(System.ComponentModel.IEditableObject)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.EditEventArgs"/> class.
            </summary>
            <param name="editableObject">The editable object.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="editableObject"/> is <c>null</c>.</exception>
        </member>
        <member name="P:System.ComponentModel.EditEventArgs.EditableObject">
            <summary>
            Gets the editable object.
            </summary>
        </member>
        <member name="P:System.ComponentModel.EditEventArgs.Cancel">
            <summary>
            Gets or sets a value indicating whether the call to should fail and the 
            object should not enter or leave the edit state.
            </summary>
            <value><c>true</c> if cancel; otherwise, <c>false</c>.</value>
        </member>
        <member name="T:System.ComponentModel.EndEditEventArgs">
            <summary>
            Event args implementation called when the object is about to call <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/>. This way,
            it is possible to cancel the events.
            </summary>
        </member>
        <member name="M:System.ComponentModel.EndEditEventArgs.#ctor(System.ComponentModel.IEditableObject)">
            <summary>
            Initializes a new instance of the <see cref="T:System.ComponentModel.EndEditEventArgs"/> class.
            </summary>
            <param name="editableObject">The editable object.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="editableObject"/> is <c>null</c>.</exception>
        </member>
        <member name="T:System.ComponentModel.PropertyChangedEventArgsExtensions">
            <summary>
            Extensions for the <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> class.
            </summary>
        </member>
        <member name="M:System.ComponentModel.PropertyChangedEventArgsExtensions.AllPropertiesChanged(System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Returns whether the specified instance of the <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> represents that all properties
            of an object have changed. This is the case when the <see cref="P:System.ComponentModel.PropertyChangedEventArgs.PropertyName"/> is <c>null</c>
            or empty.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <returns><c>true</c> if the <see cref="P:System.ComponentModel.PropertyChangedEventArgs.PropertyName"/> is <c>null</c> or empty, <c>false</c> otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> is <c>null</c>.</exception>
        </member>
        <member name="M:System.ComponentModel.PropertyChangedEventArgsExtensions.HasPropertyChanged(System.ComponentModel.PropertyChangedEventArgs,System.String)">
            <summary>
            Determines whether the specified instance of the <see cref="T:System.ComponentModel.PropertyChangedEventArgs" /> represents a change notification
            for the property specified by the property name.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs" /> instance containing the event data.</param>
            <param name="propertyName">Name of the property.</param>
            <returns><c>true</c> if <see cref="P:System.ComponentModel.PropertyChangedEventArgs.PropertyName"/> equals the property from the property expression; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="propertyName" /> is <c>null</c> or whitespace.</exception>
        </member>
        <member name="M:System.ComponentModel.PropertyChangedEventArgsExtensions.HasPropertyChanged``1(System.ComponentModel.PropertyChangedEventArgs,System.Linq.Expressions.Expression{System.Func{``0}},System.Boolean)">
            <summary>
            Determines whether the specified instance of the <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> represents a change notification
            for the property specified by the property expression.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">if set to <c>true</c>, nested properties are allowed.</param>
            <returns><c>true</c> if <see cref="P:System.ComponentModel.PropertyChangedEventArgs.PropertyName"/> equals the property from the property expression; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="propertyExpression" /> is <c>null</c>.</exception>
        </member>
        <member name="M:System.ComponentModel.PropertyChangedEventArgsExtensions.HasPropertyChanged``2(System.ComponentModel.PropertyChangedEventArgs,System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean)">
            <summary>
            Determines whether the specified instance of the <see cref="T:System.ComponentModel.PropertyChangedEventArgs" /> represents a change notification
            for the property specified by the property expression.
            </summary>
            <typeparam name="TModel">The type of the model.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs" /> instance containing the event data.</param>
            <param name="propertyExpression">The property expression.</param>
            <param name="allowNested">if set to <c>true</c>, nested properties are allowed.</param>
            <returns><c>true</c> if <see cref="P:System.ComponentModel.PropertyChangedEventArgs.PropertyName" /> equals the property from the property expression; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> is <c>null</c>.</exception>
        </member>
        <member name="T:System.ComponentModel.IAdvancedEditableObject">
            <summary>
            Interface extending the <see cref="T:System.ComponentModel.IEditableObject"/> interface with events which allows preventing the
            object from being edited.
            </summary>
        </member>
        <member name="E:System.ComponentModel.IAdvancedEditableObject.BeginEditing">
            <summary>
            Occurs when the object is about to be edited. This event gives an opportunity to cancel the call
            to <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/>.
            </summary>
        </member>
        <member name="E:System.ComponentModel.IAdvancedEditableObject.CancelEditing">
            <summary>
            Occurs when the editing of the object has just been canceled.
            </summary>
        </member>
        <member name="E:System.ComponentModel.IAdvancedEditableObject.CancelEditingCompleted">
            <summary>
            Occurs when the edit cancel has been completed or canceled.
            </summary>
        </member>
        <member name="E:System.ComponentModel.IAdvancedEditableObject.EndEditing">
            <summary>
            Occurs when the editing of the object has just been ended.
            </summary>
        </member>
        <member name="T:System.ComponentModel.IDataWarningInfo">
            <summary>
            Interface that is based on the <see cref="T:System.ComponentModel.IDataErrorInfo"/> interface, but supports warnings instead of errors.
            </summary>
        </member>
        <member name="P:System.ComponentModel.IDataWarningInfo.Warning">
            <summary>
            Gets the warning.
            </summary>
            <value>
            A warning message indicating what is possibly wrong with this object. The default is
            an empty string ("").
            </value>
        </member>
        <member name="P:System.ComponentModel.IDataWarningInfo.Item(System.String)">
            <summary>
            Gets the warning message for the property with the given name.
            </summary>
            <value></value>
            <param name="columnName">The name of the property whose warning message to get.</param>
        </member>
        <member name="T:System.ComponentModel.INotifyDataWarningInfo">
            <summary>
            Interface that is based on the <see cref="T:System.ComponentModel.INotifyDataErrorInfo"/> interface, but supports warnings instead of errors.
            </summary>
        </member>
        <member name="P:System.ComponentModel.INotifyDataWarningInfo.HasWarnings">
            <summary>
            Gets a value indicating whether this object contains any field or business warnings.
            </summary>
            <value>
            <c>true</c> if this instance has warnings; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="E:System.ComponentModel.INotifyDataWarningInfo.WarningsChanged">
            <summary>
            Occurs when the warnings have changed.
            </summary>
        </member>
        <member name="M:System.ComponentModel.INotifyDataWarningInfo.GetWarnings(System.String)">
            <summary>
            Gets the warnings for the specific property name.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <returns><see cref="T:System.Collections.IEnumerable"/> of warnings.</returns>
        </member>
    </members>
</doc>
