Added the .NET `ServiceStack` framework.
Implemented the JSON, Single DB query (mysql), and Multi DB query
(mysql) tests.
Benchmark has successfully been run using `mono` on a linux host.
Windows support has *not* been tested!
The setup scripts are more or less copied from the existing `aspnet`
framework test project, with minor tweaks to reference framework
specific filenames.
+ Registers a named service instance with the container. This instance
+ will have <see cref="F:Funq.Owner.External"/> and <see cref="F:Funq.ReuseScope.Hierarchy"/>
+ behavior.
+ </summary><param name="name">Name of the service to register.</param><param name="instance">Service instance to use.</param>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``1">
+ <summary>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service when needed.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The function that can resolve to the service instance when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service has not been registered previously.</exception>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``2">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``3">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``4">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``5">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``6">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ </member>
+ <member name="M:Funq.Container.LazyResolve``7">
+ <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for="Container.LazyResolve{TService,TArgs}"]/*"/>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service with the given name when needed.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Retrieves a function that can be used to lazily resolve an instance
+ of the service of the given type, name and service constructor arguments when needed.
+ </summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+ Registers the given service by providing a factory delegate to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg">First argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg6">Sixth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg">First argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ Registers the given named service by providing a factory delegate that receives arguments to
+ instantiate it.
+ </summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg6">Sixth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+ </member>
+ <member name="M:Funq.Container.Resolve``1">
+ <summary>
+ Resolves the given service by type, without passing any arguments for
+ its construction.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, without passing arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ Resolves the given service by type and name, passing the given arguments
+ for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+ </member>
+ <member name="M:Funq.Container.TryResolve``1">
+ <summary>
+ Attempts to resolve the given service by type, without passing arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ Attempts to resolve the given service by type and name, passing the
+ given arguments arguments for its initialization.
+ </summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+ The resolved service instance or <see langword="null"/> if it cannot be resolved.
+ BaseProfilerProvider. This providers some helper methods which provide access to
+ internals not otherwise available.
+ To use, override the <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>, <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Stop(System.Boolean)"/> and <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.GetCurrentProfiler"/>
+ Stops the current MiniProfiler (if any is currently running).
+ <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.SaveProfiler(ServiceStack.MiniProfiler.Profiler)"/> should be called if <paramref name="discardResults"/> is false
+ </summary>
+ <param name="discardResults">If true, any current results will be thrown away and nothing saved</param>
+ Wraps a database connection, allowing sql execution timings to be collected when a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> session is started.
+ Creates and starts a new MiniProfiler for the root <paramref name="url"/>, filtering <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps to <paramref name="level"/>.
+ Returns the <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/>'s <see cref="P:ServiceStack.MiniProfiler.Timing.Name"/> and <see cref="P:ServiceStack.MiniProfiler.Profiler.DurationMilliseconds"/> this profiler recorded.
+ Walks the <see cref="T:ServiceStack.MiniProfiler.Timing"/> hierarchy contained in this profiler, starting with <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/>, and returns each Timing found.
+ Returns an <see cref="T:System.IDisposable"/> that will time the code between its creation and disposal. Use this method when you
+ do not wish to include the MvcMiniProfiler namespace for the <see cref="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Step(ServiceStack.MiniProfiler.Profiler,System.String,ServiceStack.MiniProfiler.ProfileLevel)"/> extension method.
+ </summary>
+ <param name="name">A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime.</param>
+ <param name="level">This step's visibility level; allows filtering when <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/> is called.</param>
+ Returns all <see cref="T:ServiceStack.MiniProfiler.SqlTiming"/> results contained in all child <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps.
+ Returns true when <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/> or any of its <see cref="P:ServiceStack.MiniProfiler.Timing.Children"/> are <see cref="P:ServiceStack.MiniProfiler.Timing.IsTrivial"/>.
+ Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>ed.
+ When <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/> is called, if the current request url contains any items in this property,
+ no profiler will be instantiated and no results will be displayed.
+ Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }.
+ Understands how to save and load MiniProfilers. Used for caching between when
+ a profiling session ends and results can be fetched to the client, and for showing shared, full-page results.
+ </summary>
+ <remarks>
+ The normal profiling session life-cycle is as follows:
+ 1) request begins
+ 2) profiler is started
+ 3) normal page/controller/request execution
+ 4) profiler is stopped
+ 5) profiler is cached with <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage"/>'s implementation of <see cref="M:ServiceStack.MiniProfiler.Storage.IStorage.Save(ServiceStack.MiniProfiler.Profiler)"/>
+ 6) request ends
+ 7) page is displayed and profiling results are ajax-fetched down, pulling cached results from
+ <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage"/>'s implementation of <see cref="M:ServiceStack.MiniProfiler.Storage.IStorage.Load(System.Guid)"/>
+ Wraps <paramref name="selector"/> in a <see cref="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Step(ServiceStack.MiniProfiler.Profiler,System.String,ServiceStack.MiniProfiler.ProfileLevel)"/> call and executes it, returning its result.
+ </summary>
+ <param name="profiler">The current profiling session or null.</param>
+ <param name="selector">Method to execute and profile.</param>
+ <param name="name">The <see cref="T:ServiceStack.MiniProfiler.Timing"/> step name used to label the profiler results.</param>
+ Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor
+ </summary>
+ <param name="timing">The SqlTiming to format</param>
+ Returns true if this has the same parent <see cref="P:ServiceStack.MiniProfiler.SqlTiming.Id"/>, <see cref="P:ServiceStack.MiniProfiler.SqlTimingParameter.Name"/> and <see cref="P:ServiceStack.MiniProfiler.SqlTimingParameter.Value"/> as <paramref name="obj"/>.
+ Returns a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> from storage based on <paramref name="id"/>, which should map to <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+ </summary>
+ <remarks>
+ Should also update that the resulting profiler has been marked as viewed by its profiling <see cref="P:ServiceStack.MiniProfiler.Profiler.User"/>.
+ Understands how to store a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> to the <see cref="P:System.Web.HttpRuntime.Cache"/> with absolute expiration.
+ Saves <paramref name="profiler"/> to the HttpRuntime.Cache under a key concated with <see cref="F:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.CacheKeyPrefix"/>
+ and the parameter's <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+ All sub-steps that occur within this Timing step. Add new children through <see cref="M:ServiceStack.MiniProfiler.Timing.AddChild(ServiceStack.MiniProfiler.Timing)"/>
+ Stores arbitrary key/value strings on this Timing step. Add new tuples through <see cref="M:ServiceStack.MiniProfiler.Timing.AddKeyValue(System.String,System.String)"/>.
+ Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was <see cref="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>ed.
+ TODO: plugin added with .Add method after host initialization won't be configured. Each plugin should have state so we can invoke Register method if host was already started.
+ Gets or sets authentication information for the request.
+ Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+ This property is only used for IIS level authentication.
+ Gets or sets the object that has been initialized only.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Common.UrnId">
+ <summary>
+ Creates a Unified Resource Name (URN) with the following formats:
+
+ - urn:{TypeName}:{IdFieldValue} e.g. urn:UserSession:1
+ - urn:{TypeName}:{IdFieldName}:{IdFieldValue} e.g. urn:UserSession:UserId:1
+
+ </summary>
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Gets or sets authentication information for the request.
+ Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+ This property is only used for IIS level authentication.
+ These extensions have a potential to conflict with the LINQ extensions methods so
+ leaving the implmentation in the 'Extensions' sub-namespace to force explicit opt-in
+ </summary>
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.CacheAccess.ICacheClient.GetAll``1(System.Collections.Generic.IEnumerable{System.String})" -->
+ Gets or sets authentication information for the request.
+ Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+ This property is only used for IIS level authentication.
+ Gets or sets the object that has been initialized only.
+ </summary>
+ </member>
+ <member name="T:ServiceStack.Common.UrnId">
+ <summary>
+ Creates a Unified Resource Name (URN) with the following formats:
+
+ - urn:{TypeName}:{IdFieldValue} e.g. urn:UserSession:1
+ - urn:{TypeName}:{IdFieldName}:{IdFieldValue} e.g. urn:UserSession:UserId:1
+
+ </summary>
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount.
+ The operation is atomic and happens on the server.
+ A non existent value at key starts at 0
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.CacheAccess.ICacheClient.GetAll``1(System.Collections.Generic.IEnumerable{System.String})" -->
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to increase the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+ </summary>
+ <param name="key">The identifier for the item to increment.</param>
+ <param name="amount">The amount by which the client wants to decrease the item.</param>
+ <returns>
+ The new value of the item or -1 if not found.
+ </returns>
+ <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+ <description>Light, simple and fast convention-based code-first POCO ORM for MySQL.
+ Support for Creating and Dropping Table Schemas from POCOs, Complex Property types transparently stored in schemaless text blobs in MySQL.</description>
+ <releaseNotes />
+ <copyright>ServiceStack 2013 and contributors</copyright>
+ <language>en-US</language>
+ <tags>MySql OrmLite POCO Code-First Orm Schema-less Blobs</tags>
+ <description>Light, simple and fast convention-based code-first POCO ORM for Sql Server.
+ Support for Creating and Dropping Table Schemas from POCOs, Complex Property types transparently stored in schemaless text blobs in SQLServer.</description>
+ <copyright>ServiceStack 2013 and contributors</copyright>
+ <language>en-US</language>
+ <tags>SQLServer SQL Server OrmLite POCO Code-First Orm Schema-less Blobs</tags>
+ Optimized <see cref="T:ServiceStack.Redis.Support.ISerializer"/> implementation. Primitive types are manually serialized, the rest are serialized using binary serializer />.
+ Dequeue up to maxBatchSize items from queue corresponding to workItemId identifier.
+ Once this method is called, <see cref="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.Dequeue(System.Int32)"/> or <see cref="!:Peek"/> will not
+ return any items for workItemId until the dequeue lock returned is unlocked.
+ <param name="someBytes">byte array to deserialize</param>
+ <returns></returns>
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[][])" -->
+ Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> collection with the lowest available index.
+ </summary>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add.</param>
+ <returns>The index of the newly added entry</returns>
+ <remarks>
+ <para>You can also use the <see cref="P:System.Collections.Generic.IDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see>, setting the <see cref="P:Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+ <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see></exception>
+ <exception cref="T:System.NotSupportedException">The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> is read-only.<br/>
+ -or-<br/>
+ The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> has a fized size.</exception>
+ Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> collection with the specified key and value at the specified index.
+ </summary>
+ <param name="index">The zero-based index at which the element should be inserted.</param>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+ -or-<br/>
+ <paramref name="index"/> is greater than <see cref="P:System.Collections.ICollection.Count"/>.</exception>
+ <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see>.</exception>
+ <exception cref="T:System.NotSupportedException">The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> is read-only.<br/>
+ -or-<br/>
+ The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary<TKey,TValue></see> has a fized size.</exception>
+ Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> class using the specified initial capacity.
+ </summary>
+ <param name="capacity">The initial number of elements that the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> can contain.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0</exception>
+ Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> class using the specified comparer.
+ </summary>
+ <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1">IEqualityComparer<TKey></see> to use when comparing keys, or <null/> to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1">EqualityComparer<TKey></see> for the type of the key.</param>
+ Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> class using the specified initial capacity and comparer.
+ </summary>
+ <param name="capacity">The initial number of elements that the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection can contain.</param>
+ <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1">IEqualityComparer<TKey></see> to use when comparing keys, or <null/> to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1">EqualityComparer<TKey></see> for the type of the key.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0</exception>
+ Converts the object passed as a key to the key type of the dictionary
+ </summary>
+ <param name="keyObject">The key object to check</param>
+ <returns>The key object, cast as the key type of the dictionary</returns>
+ <exception cref="T:System.ArgumentNullException"><paramref name="keyObject"/> is <null/>.</exception>
+ <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="keyObject"/>.</exception>
+ Converts the object passed as a value to the value type of the dictionary
+ </summary>
+ <param name="value">The object to convert to the value type of the dictionary</param>
+ <returns>The value object, converted to the value type of the dictionary</returns>
+ <exception cref="T:System.ArgumentNullException"><paramref name="valueObject"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is a value type.</exception>
+ <exception cref="T:System.ArgumentException">The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="valueObject"/>.</exception>
+ Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection with the specified key and value at the specified index.
+ </summary>
+ <param name="index">The zero-based index at which the element should be inserted.</param>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+ -or-<br/>
+ <paramref name="index"/> is greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.</exception>
+ <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</exception>
+ Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection with the specified key and value at the specified index.
+ </summary>
+ <param name="index">The zero-based index at which the element should be inserted.</param>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+ -or-<br/>
+ <paramref name="index"/> is greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.<br/>
+ -or-<br/>
+ <paramref name="value"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is a value type.</exception>
+ <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="key"/>.<br/>
+ -or-<br/>
+ The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="value"/>.<br/>
+ -or-<br/>
+ An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</exception>
+ Removes the entry at the specified index from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.
+ </summary>
+ <param name="index">The zero-based index of the entry to remove.</param>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+ -or-<br/>
+ index is equal to or greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+ Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection with the lowest available index.
+ </summary>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. This value can be <null/>.</param>
+ <remarks>A key cannot be <null/>, but a value can be.
+ <para>You can also use the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>, setting the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+ <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></exception>
+ Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection with the lowest available index.
+ </summary>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. This value can be <null/>.</param>
+ <returns>The index of the newly added entry</returns>
+ <remarks>A key cannot be <null/>, but a value can be.
+ <para>You can also use the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>, setting the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+ <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></exception>
+ Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection with the lowest available index.
+ </summary>
+ <param name="key">The key of the entry to add.</param>
+ <param name="value">The value of the entry to add. This value can be <null/>.</param>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.<br/>
+ -or-<br/>
+ <paramref name="value"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is a value type.</exception>
+ <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="key"/>.<br/>
+ -or-<br/>
+ The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="value"/>.</exception>
+ Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection contains a specific key.
+ </summary>
+ <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.</param>
+ <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+ Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection contains a specific key.
+ </summary>
+ <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.</param>
+ <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+ <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+ <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="key"/>.</exception>
+ Returns the zero-based index of the specified key in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>
+ </summary>
+ <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></param>
+ <returns>The zero-based index of <paramref name="key"/>, if <paramref name="ley"/> is found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>; otherwise, -1</returns>
+ <remarks>This method performs a linear search; therefore it has a cost of O(n) at worst.</remarks>
+ Removes the entry with the specified key from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.
+ </summary>
+ <param name="key">The key of the entry to remove</param>
+ <returns><see langword="true"/> if the key was found and the corresponding element was removed; otherwise, <see langword="false"/></returns>
+ Removes the entry with the specified key from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.
+ </summary>
+ <param name="key">The key of the entry to remove</param>
+ Copies the elements of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> elements to a one-dimensional Array object at the specified index.
+ </summary>
+ <param name="array">The one-dimensional <see cref="T:System.Array"/> object that is the destination of the <see cref="T:KeyValuePair`2>"/> objects copied from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
+ <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+ <remarks>The <see cref="M:CopyTo"/> method preserves the order of the elements in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></remarks>
+ Gets the value associated with the specified key.
+ </summary>
+ <param name="key">The key of the value to get.</param>
+ <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of <paramref name="value"/>. This parameter can be passed uninitialized.</param>
+ <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+ Adds the specified value to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> with the specified key.
+ </summary>
+ <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair<TKey,TValue></see> structure representing the key and value to add to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</param>
+ Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> contains a specific key and value.
+ </summary>
+ <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair<TKey,TValue></see> structure to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</param>
+ <returns><see langword="true"/> if <paramref name="keyValuePair"/> is found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>; otherwise, <see langword="false"/>.</returns>
+ Copies the elements of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> to an array of type <see cref="T:KeyValuePair`2>"/>, starting at the specified index.
+ </summary>
+ <param name="array">The one-dimensional array of type <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair<TKey,TValue></see> that is the destination of the <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair<TKey,TValue></see> elements copied from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>. The array must have zero-based indexing.</param>
+ <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+ <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair<TKey,TValue></see> structure representing the key and value to remove from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</param>
+ <returns><see langword="true"/> if the key and value represented by <paramref name="keyValuePair"/> is successfully found and removed; otherwise, <see langword="false"/>. This method returns <see langword="false"/> if <paramref name="keyValuePair"/> is not found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</returns>
+ Gets the dictionary object that stores the keys and values
+ </summary>
+ <value>The dictionary object that stores the keys and values for the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></value>
+ <remarks>Accessing this property will create the dictionary object if necessary</remarks>
+ Gets the list object that stores the key/value pairs.
+ </summary>
+ <value>The list object that stores the key/value pairs for the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see></value>
+ <remarks>Accessing this property will create the list object if necessary.</remarks>
+ <param name="index">The zero-based index of the value to get or set.</param>
+ <value>The value of the item at the specified index.</value>
+ <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+ -or-<br/>
+ index is equal to or greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+ <exception cref="T:System.ArgumentNullException"><paramref name="valueObject"/> is a null reference, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is a value type.</exception>
+ <exception cref="T:System.ArgumentException">The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is not in the inheritance hierarchy of <paramref name="valueObject"/>.</exception>
+ Gets a value indicating whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> has a fixed size.
+ </summary>
+ <value><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> has a fixed size; otherwise, <see langword="false"/>. The default is <see langword="false"/>.</value>
+ Gets a value indicating whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection is read-only.
+ </summary>
+ <value><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> is read-only; otherwise, <see langword="false"/>. The default is <see langword="false"/>.</value>
+ <remarks>
+ A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.
+ <para>A collection that is read-only is simply a collection with a wrapper that prevents modification of the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.</para>
+ Gets an <see cref="T:System.Collections.ICollection"/> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.
+ </summary>
+ <value>An <see cref="T:System.Collections.ICollection"/> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</value>
+ <remarks>The returned <see cref="T:System.Collections.ICollection"/> object is not a static copy; instead, the collection refers back to the keys in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> continue to be reflected in the key collection.</remarks>
+ Gets an <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.
+ </summary>
+ <value>An <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.</value>
+ <remarks>The returned <see cref="T:System.Collections.ICollection"/> object is not a static copy; instead, the <see cref="T:System.Collections.ICollection"/> refers back to the values in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> continue to be reflected in the <see cref="T:System.Collections.ICollection"/>.</remarks>
+ <param name="key">The key of the value to get or set.</param>
+ <value>The value associated with the specified key. If the specified key is not found, attempting to get it returns <null/>, and attempting to set it creates a new element using the specified key.</value>
+ <param name="key">The key of the value to get or set.</param>
+ <value>The value associated with the specified key. If the specified key is not found, attempting to get it returns <null/>, and attempting to set it creates a new element using the specified key.</value>
+ Gets the number of key/values pairs contained in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.
+ </summary>
+ <value>The number of key/value pairs contained in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> collection.</value>
+ Gets a value indicating whether access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> object is synchronized (thread-safe).
+ Gets an object that can be used to synchronize access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> object.
+ </summary>
+ <value>An object that can be used to synchronize access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> object.</value>
+ Gets an <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection<TKey></see> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.
+ </summary>
+ <value>An <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection<TKey></see> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</value>
+ <remarks>The returned <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection<TKey></see> object is not a static copy; instead, the collection refers back to the keys in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> continue to be reflected in the key collection.</remarks>
+ Gets an <see cref="T:ICollection{TValue}">ICollection<TValue></see> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.
+ </summary>
+ <value>An <see cref="T:ICollection{TValue}">ICollection<TValue></see> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>.</value>
+ <remarks>The returned <see cref="T:ICollection{TValue}">ICollection<TKey></see> object is not a static copy; instead, the collection refers back to the values in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary<TKey,TValue></see> continue to be reflected in the value collection.</remarks>
+These are MSBuild files that come with Visual Studio 2012 Update 2. They can be found in `C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0`.
+ <Target Name="ProcessPublishDatabaseSettings" DependsOnTargets="$(ProcessPublishDatabaseSettingsDependsOn)" Condition="$(PublishDatabases) And '$(FilePreview)'!='true' And ('$(PublishDatabaseSettings)' != '' Or '$(PublishDatabaseSettingsFile)' != '')">
+ And '%(_DatabasesToPackage.SourceProvider)' == 'DbFullSql'
+ And '%(_DatabasesToPackage.SourcePath)' != ''
+ And Exists('%(_DatabasesToPackage.SourcePath)')
+ And '$([System.IO.Path]::GetExtension($([System.String]::new(%(_DatabasesToPackage.SourcePath)))))' == '.sql'">
+ </_DatabasesToPackageForSQL>
+ </ItemGroup>
+
+ <!-- this is very costly operation depend on sql file size. For example, 256 Meg sql file, it takes about 11 second to process (merely open it and scan it.)
+ We should avoid process if we have any knowledge on the sql file-->
+ Condition="$(EnableSqlScriptVariableParameterize) And '%(_DatabasesToPackageForSQL.SourcePath)' != '' And Exists('%(_DatabasesToPackageForSQL.SourcePath)') ">
+ <!--Remove untransformed Web.configs from the pipeline-->
+ <FilesForPackagingFromProject Remove="@(_WebConfigsToInsertEFCodeFirstDeployContext)" Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"/>
+ <!--Add the transformed Web.configs at the new loction to the pipeline-->
+ <FilesForPackagingFromProject Include="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"/>
+ </ItemGroup>
+
+ <!--Get Localized string before displaying message-->
+ <GetPublishingLocalizedString
+ Importance="High"
+ Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"
+ Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"
+ Text="Auto ConnectionString Transformed @(_WebConfigsToInsertEFCodeFirstDeployContext) into %(TransformOutputFile)" />-->
+ <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+ <DeployParameterIISAppConnectionStringDescription Condition="'$(DeployParameterIISAppConnectionStringDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppConnectionStringDescription>
+ <!--Work around the TSData script when there are Sqlcommand variable that declare as Empty string-->
+ <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage_SqlVariables->'$(DeployParameterPrefix)Sql script variable %24(%(Identity)) in %(DestinationGroup) scripts')"
+ Condition="$(EnableSqlScriptVariableParameterize) and '%(_DatabasesToPackage_SqlVariables.Identity)' !='' and ('%(_DatabasesToPackage_SqlVariables.Value)' == '') and ('%(_DatabasesToPackage_SqlVariables.IsDeclared)' == 'true') ">
+ <GenerateSampleDeployScriptSourceType Condition="$(_CreatePackage) And $(PackageAsSingleFile)">package</GenerateSampleDeployScriptSourceType>
+ <GenerateSampleDeployScriptSourceFileName Condition="$(_CreatePackage) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FileName)%(Extension)')</GenerateSampleDeployScriptSourceFileName>
+ <GenerateSampleDeployScriptSourceType Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">archiveDir</GenerateSampleDeployScriptSourceType>
+ <GenerateSampleDeployScriptSourceFileName Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FileName)%(Extension)')</GenerateSampleDeployScriptSourceFileName>
+ <!--Now write the sample batch file. Note this relies on the fact that the Batch file should be under the same location as the package and manifestfiles -->
+ <!--Note that by default Command line file only support the ANSI. Even if we code it against utf-8, the cmd.exe won't be able to handle it.
+ Only the package and setparameters.xml file name matter. You change the deploy parameters into setparameters.xml which support utf-8 properly.-->
+echo /T Calls msdeploy.exe with the "-whatif" flag, which simulates deployment.
+echo /Y Calls msdeploy.exe without the "-whatif" flag, which deploys the package to the current machine or destination server
+echo Optional flags:
+echo. By Default, this script deploy to the current machine where this script is invoked which will use current user credential without tempAgent.
+echo. Only pass these arguments when in advance scenario.
+echo /M: Msdeploy destination name of remote computer or proxy-URL. Default is local.
+echo /U: Msdeploy destination user name.
+echo /P: Msdeploy destination password.
+echo /G: Msdeploy destination tempAgent. True or False. Default is false.
+echo /A: specifies the type of authentication to be used. The possible values are NTLM and Basic. If the wmsvc provider setting is specified, the default authentication type is Basic; otherwise, the default authentication type is NTLM.
+echo /L: Deploy to Local IISExpress User Instance.
+
+echo.[additional msdeploy flags]: note: " is required for passing = through command line.
+ <_WebPublishProfileFileWillBeImported Condition="'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))">true</_WebPublishProfileFileWillBeImported>
+ <WPPCopyWebApplicaitonPipelineCircularDependencyError Condition="$(UseWPP_CopyWebApplication) And !$(Disable_CopyWebApplication) And $(PipelineDependsOnBuild) And !$(_DeployOnBuild)">True</WPPCopyWebApplicaitonPipelineCircularDependencyError>
+ <ProjectProfileTransformFileName Condition="'$(ProjectProfileTransformFileName)'=='' And '$(PublishProfileName)' != '' ">$(_ProjectConfigFilePrefix).$(PublishProfileName)$(_ProjectConfigFileExtension)</ProjectProfileTransformFileName>
+
+ <!--if $(TransformWebConfigEnabled) is also enabled and the ConfigTransform and ProfileTransform happen to have same filename, we default $(ProfilefileTransformWebCofnigEnabled) to false so it doesn't do double transform-->
+ <ProfileTransformWebConfigEnabled Condition="'$(ProfileTransformWebConfigEnabled)'=='' And '$(TransformWebConfigEnabled)' == 'true' And ('$(ProjectProfileTransformFileName)' == '$(ProjectConfigTransformFileName)')">False</ProfileTransformWebConfigEnabled>
+ <!-- DesktopBuildPackageLocation is been set by VS UI -->
+ <PackageLocation Condition="'$(PackageLocation)'=='' and !(('$(OutDir)' != '$(OutputPath)') Or ('$(IsDesktopBuild)' == 'False')) ">$(DesktopBuildPackageLocation)</PackageLocation>
+ <PackageFileName Condition="'$(PackageFileName)'=='' And $(PackageAsSingleFile) And '$(PackageLocation)' != ''">$(PackageLocation)</PackageFileName>
+ <PackageFileName Condition="'$(PackageFileName)'!='' And $(PackageAsSingleFile) And '$([System.IO.Path]::GetExtension($(PackageFileName)))' == '' ">$(PackageFileName)\$(DefaultPackageFileName)</PackageFileName>
+ <PackageArchiveRootDir Condition="'$(PackageArchiveRootDir)'=='' And !$(PackageAsSingleFile) And '$(PackageLocation)' != ''">$(PackageLocation)</PackageArchiveRootDir>
+ <PackageEnableLinks Condition="'$(IncludeAppPool)'=='true' and $(_UseDefaultLinkExtensionValue)">AppPoolExtension</PackageEnableLinks>
+ <PackageDisableLinks Condition="'$(IncludeAppPool)'=='true' and $(_UseDefaultLinkExtensionValue)">ContentExtension;CertificateExtension</PackageDisableLinks>
+ <ProjectParametersXMLFile Condition="'$(ProjectParametersXMLFile)'=='' And Exists('$(MSBuildProjectDirectory)\Parameters.xml')">$(MSBuildProjectDirectory)\Parameters.xml</ProjectParametersXMLFile>
+ <DeployParameterPrefix Condition="$(EnableProjectDeployParameterPrefix) and '$(DeployParameterPrefix)'==''">$(WebPublishPipelineProjectName) </DeployParameterPrefix>
+ <DeployParameterIISAppName Condition="'$(DeployParameterIISAppName)'==''">$(DeployParameterPrefix)IIS Web Application Name</DeployParameterIISAppName>
+ <DeployParameterIISAppPoolName Condition="'$(DeployParameterIISAppPoolName)'==''">$(DeployParameterPrefix)IIS Web Application Pool Name</DeployParameterIISAppPoolName>
+ <DeployParameterApp_DataWritePermission Condition="'$(DeployParameterApp_DataWritePermission)'==''">$(DeployParameterPrefix)Add write permission to App_Data Folder</DeployParameterApp_DataWritePermission>
+ <GenerateSampleDeployScriptLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd')</GenerateSampleDeployScriptLocation>
+ <GenerateSampleDeployScriptLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd')</GenerateSampleDeployScriptLocation>
+ <GenerateSampleDeployScriptReadMeFileName Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptReadMeLocation)'==''">@(_MSDeployPackageLocation->'%(FileName).deploy-readme.txt')</GenerateSampleDeployScriptReadMeFileName>
+ <GenerateSampleDeployScriptReadMeLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptReadMeLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy-readme.txt')</GenerateSampleDeployScriptReadMeLocation>
+ <GenerateSampleParametersValueLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleParametersValueLocation)'==''">$(GenerateSampleParametersValueLocationDefault)</GenerateSampleParametersValueLocation>
+ <!-- "You can't package as a single file to be the same name as an existing folder. Please delete the folder before packaging. Alternative,you can call msbuild with /t:CleanWebsitesPackage target to remove it." />-->
+
+ <GetPublishingLocalizedString
+ Condition="!$(PackageAsSingleFile) And $(_CheckPackageLocationExists) And !$(_CheckPackageLocationIsFolder)"
+ <!-- "'$(PackageArchiveRootDir)' exist as a file. You can't package as an archive directory to be the same as an existing file. Please delete the file before packaging. Alternative,you can call msbuild with /t:CleanWebsitesPackage target to remove it." />-->
+
+ <GetPublishingLocalizedString
+ Condition="!$(PackageAsSingleFile) And $(_CheckPackageLocationArchiveDirExists) And !$(_CheckPackageLocationArchiveDirIsFolder)"
+ <!-- "'$(PackageArchiveRootDir)\Archive' exist as a file. You can't package as an archive directory to be the same as an existing file. Please delete the file before packaging. Alternative,you can call msbuild with /t:CleanWebsitesPackage target to clean it." />-->
+
+ <!--Check on the IIS version compatibility-->
+ <GetPublishingLocalizedString
+ Condition="$(DestinationUseIis) And ($(DestinationIisVersion) < '7') And $(_DeploymentUseIis) And ($(LocalIisVersion) >= '7')"
+ <!-- "Deploy with IIS Setting from a IIS 7 or above to a lower verstion of IIS server is not supported. To fix the problem, please set the %24(IncludeIisSettings) to false. Your current setting are %24(IncludeIisSettings) is $(IncludeIisSettings), %24(DestinationIisVersion) is $(DestinationIisVersion) and %24(LocalIisVersion) is $(LocalIisVersion)." />-->
+ "These two Properties are not compatable %24(UseWPP_CopyWebApplication) and %24(PipelineDependsOnBuild) both are True.
+ Please correct the problem by either set %24(Disable_CopyWebApplication) to true or set %24(PipelineDependsOnBuild) to false to break the circular build dependency.
+ Detail: %24(UseWPP_CopyWebApplication) make the publsih pipeline (WPP) to be Part of the build and %24(PipelineDependsOnBuild) make the WPP depend on build thus cause the build circular build dependency. " />
+ <!-- Remove untransformed Web.configs from the pipeline -->
+ <FilesForPackagingFromProject Remove="@(WebConfigsToTransform)" Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"/>
+ <!-- Add the transformed Web.configs at the new loction to the pipeline-->
+ <FilesForPackagingFromProject Include="@(WebConfigsToTransform->'%(TransformOutputFile)')" Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"/>
+ </ItemGroup>
+
+ <GetPublishingLocalizedString
+ Importance="High"
+ Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"
+ <!--Remove untransformed Web.configs from the pipeline-->
+ <FilesForPackagingFromProject Remove="@(ProfileWebConfigsToTransform)" Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"/>
+ <!--Add the transformed Web.configs at the new loction to the pipeline-->
+ <FilesForPackagingFromProject Include="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)')" Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"/>
+ </ItemGroup>
+
+
+ <GetPublishingLocalizedString
+ Importance="High"
+ Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"
+ <!-- Remove untransformed Web.configs from the pipeline -->
+ <FilesForPackagingFromProject Remove="@(_WebConfigsToInsertAdditionalCS)" Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"/>
+ <!-- Add the transformed Web.configs at the new loction to the pipeline -->
+ <FilesForPackagingFromProject Include="@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"/>
+ </ItemGroup>
+
+ <GetPublishingLocalizedString
+ Importance="High"
+ Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"
+ Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' And !%(FilesForPackagingFromProject.Exclude)">
+ <!-- Remove untransformed Web.configs from the pipeline-->
+ <FilesForPackagingFromProject Remove="@(_WebConfigsToAutoParmeterizeCS)" Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"/>
+ <!-- Add the transformed Web.configs at the new loction to the pipeline-->
+ <FilesForPackagingFromProject Include="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"/>
+ </ItemGroup>
+
+ <GetPublishingLocalizedString
+ Importance="High"
+ Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"
+ <!--This is a phase separation point. Some deploy doesn't need to copy all file to a folder, But for MSDeploy, it required to have all file in a single folder-->
+ If indicated to mark the dest as an IIS app it will be created with iisApp,
+ otherwise contentPath will be used.
+ -->
+
+ <GetDeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersion)'=='' And $(_DeploymentAsIisApp) And !$(IgnoreDeployManagedRuntimeVersion)"
+ <!-- Additionally if App_Data Need to be ReadWrite -->
+ <MsDeploySourceManifest Include="setAcl"
+ Condition="$(_DeploymentAsIisApp) And $(IncludeSetAclProviderOnDestination) And $(MarkApp_DataWritableOnDestination) And Exists('$(_MSDeployDirPath_FullPath)\App_Data')">
+ <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) < '7') And ('$(_MSDeployIisAppPathIIS6)'!= '') " >$(_MSDeployIisAppPathIIS6)</_DestinationContentPath>
+ <!-- For iis7 and above scenario-->
+ <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) >= '7') And ('$(_MSDeployIisAppPathIIS7)' !='')">$(_MSDeployIisAppPathIIS7)</_DestinationContentPath>
+ <!-- default ParameterName for contentPath, by default they are the same as ApphostConfig/MetaKey so they can reuse the parameter-->
+ <_MsDeployParameterNameForContentPath Condition="$(_DeploymentUseIis) And (!$(DestinationUseIis))">$(DeployParameterIISAppPhysicalPath)</_MsDeployParameterNameForContentPath>
+ <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+ <DeployParameterIISAppNameDescription Condition="'$(DeployParameterIISAppNameDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppNameDescription>
+
+ <!--Get localized $(DeployParameterIISAppPhysicalPathDescription) from the Task.dll if it wasn't bee set by user.-->
+ <GetPublishingLocalizedString
+ Condition="'$(DeployParameterIISAppPhysicalPathDescription)'=='' And !$(DeployParameterAutoDescriptionbyTags)"
+ <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+ <DeployParameterIISAppPhysicalPathDescription Condition="'$(DeployParameterIISAppPhysicalPathDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppPhysicalPathDescription>
+ <TestDeployPackageToLocalSourceType Condition="$(_CreatePackage) And $(PackageAsSingleFile)">package</TestDeployPackageToLocalSourceType>
+ <TestDeployPackageToLocalSourceRoot Condition="$(_CreatePackage) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FullPath)')</TestDeployPackageToLocalSourceRoot>
+ <TestDeployPackageToLocalSourceType Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">archiveDir</TestDeployPackageToLocalSourceType>
+ <TestDeployPackageToLocalSourceRoot Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FullPath)')</TestDeployPackageToLocalSourceRoot>
+ <!-- "Setting both property values of DeployAsIisApp and IncludeIisSettingsOnPublish to true is not recommended, as IncludeIisSettingsOnPublish is a superset of DeployAsIisApp" />-->
+
+ <CreateProperty Value="NTLM" Condition="!$(_UseWMSVC) And $(NormalizePublishSettings)">
+ <MSDeployPublishSourceType Condition="$(CreatePackageOnPublish) And $(PackageAsSingleFile)">package</MSDeployPublishSourceType>
+ <MSDeployPublishSourceRoot Condition="$(CreatePackageOnPublish) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FullPath)')</MSDeployPublishSourceRoot>
+ <MSDeployPublishSourceType Condition="$(CreatePackageOnPublish) And !$(PackageAsSingleFile)">archiveDir</MSDeployPublishSourceType>
+ <MSDeployPublishSourceRoot Condition="$(CreatePackageOnPublish) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FullPath)')</MSDeployPublishSourceRoot>
+ <_VsPublishParametersFile Condition="$(UseDeclareParametersXMLInMsDeploy) and '$(_VsPublishParametersFile)'==''">$(PublishParametersFile)</_VsPublishParametersFile>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <!-- We will include the parameter when $(UseDeclareParametersXMLInMsDeploy) is false-->
+ <!-- We need to have those Parameters when it is direct publishing from manifest and not use -->
+ <_VsPublish_MsDeployDeclareParameters Include="@(MsDeployDeclareParameters)" Condition="!$(UseDeclareParametersXMLInMsDeploy) And !$(CreatePackageOnPublish)" />
+ <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(DebugSymbols)' == 'true'">False</ExcludeGeneratedDebugSymbol>
+ <ProjectParametersXMLFile Condition="'$(ProjectParametersXMLFile)'=='' And Exists('$(MSBuildProjectDirectory)\Parameters.xml')">$(OutputPath)\Parameters.xml</ProjectParametersXMLFile>
+ <!--In earlier version of WPP, Web.config transformation doesn't support anthing other than the Msbuild Project project folder to find the web.config-->
+ <!--We can't use the in-place aspnet_compiler because it will output to the aspnet temp folder which is only suiteable to run on the current machine.-->
+ <!--This will be overwrite by ..\web\Microsoft.Web.Publishing.targets when $(UseWPP_CopyWebApplication) set to true-->
+ <OnBefore_CopyWebApplicationDefault>
+ _CopyWebApplicationLegacy;
+ </OnBefore_CopyWebApplicationDefault>
+ <OnBefore_CopyWebApplicationDefault Condition="$(UseWPP_CopyWebApplication) AND Exists('$(MSBuildThisFileDirectory)\..\Web\Microsoft.Web.Publishing.targets')">