Index: /trunk/build/unity.proj
===================================================================
--- /trunk/build/unity.proj	(revision 426)
+++ /trunk/build/unity.proj	(revision 431)
@@ -6,5 +6,5 @@
     </Projects>
     <Projects Include="$(SourcePath)\OpenRasta.DI.Unity.Tests.Unit\OpenRasta.DI.Unity.Tests.Unit.csproj">
-      <MinVersion>20</MinVersion>
+      <MinVersion>35</MinVersion>
     </Projects>
   </ItemGroup>
Index: /trunk/build/vside.proj
===================================================================
--- /trunk/build/vside.proj	(revision 319)
+++ /trunk/build/vside.proj	(revision 431)
@@ -31,4 +31,5 @@
     <Zip Files="@(ProjectTemplate)" WorkingDirectory="%(WorkingDirectory)" ZipFileName="$(OutputPath)\%(Package)" />
   </Target>
+  <Target Name="Clean" />
   <Import Project="common.properties" />
   <Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" />
Index: /trunk/build/releasebuilder.targets
===================================================================
--- /trunk/build/releasebuilder.targets	(revision 426)
+++ /trunk/build/releasebuilder.targets	(revision 431)
@@ -132,5 +132,10 @@
 
 
-
+  <Target Name="Clean">
+    <MSBuild Projects="@(Module)" Properties="FrameworkProfile=35;Configuration=$(Configuration);RunTests=$(RunTests)" Targets="Clean" ContinueOnError="true" />
+    <MSBuild Projects="@(Module)" Properties="FrameworkProfile=30;Configuration=$(Configuration);RunTests=$(RunTests)" Targets="Clean" ContinueOnError="true" />
+    <MSBuild Projects="@(Module)" Properties="FrameworkProfile=20;Configuration=$(Configuration);RunTests=$(RunTests)" Targets="Clean" ContinueOnError="true"  />
+  </Target>
+  
   <!-- 
   
Index: /trunk/src/core/core.4.5.resharper
===================================================================
--- /trunk/src/core/core.4.5.resharper	(revision 429)
+++ /trunk/src/core/core.4.5.resharper	(revision 431)
@@ -28,5 +28,5 @@
 Linq
 tokenizers
-Tokenizer</UserWords>
+Tokenizer
 surrogated
 Templated
@@ -35,4 +35,9 @@
             <CustomDictionary>
               <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords />
+            </CustomDictionary>
+            <CustomDictionary>
+              <Name>en-US</Name>
               <CaseSensitive>false</CaseSensitive>
               <UserWords />
Index: /trunk/src/core/OpenRasta.Tests.Unit/OperationModel/Interceptors/Interceptors_Specification.cs
===================================================================
--- /trunk/src/core/OpenRasta.Tests.Unit/OperationModel/Interceptors/Interceptors_Specification.cs	(revision 317)
+++ /trunk/src/core/OpenRasta.Tests.Unit/OperationModel/Interceptors/Interceptors_Specification.cs	(revision 431)
@@ -90,5 +90,5 @@
         {
 
-            given_mock_operation(op => op.Expect(x => x.Invoke()).Returns(new OutputMember[0]).Verifiable());
+            given_mock_operation(op => op.Expect(x => x.Invoke()).Returns(new Output[0]).Verifiable());
             given_mock_interceptor(before => before.Returns(true),
                                    after => after.Throws<ArgumentException>());
@@ -106,5 +106,5 @@
         public void an_interceptor_returning_false_in_post_condition_prevents_execution_from_continuing()
         {
-            given_mock_operation(op => op.Expect(x => x.Invoke()).Returns(new OutputMember[0]).Verifiable());
+            given_mock_operation(op => op.Expect(x => x.Invoke()).Returns(new Output[0]).Verifiable());
             given_mock_interceptor(before => before.Returns(true),
                                    after => after.Returns(false));
@@ -119,5 +119,5 @@
         public void an_interceptor_can_replace_the_original_invoke_call()
         {
-            var emptyResult = new OutputMember[0];
+            var emptyResult = new Output[0];
             given_mock_operation(op=>op.Expect(x=>x.Invoke()).Throws<InvalidOperationException>());
             given_mock_interceptor(()=>emptyResult);
@@ -134,5 +134,5 @@
         protected OperationWithInterceptors WrappedOperation;
         protected Mock<IOperation> MockOperation;
-        protected IEnumerable<OutputMember> InvokeResult;
+        protected IEnumerable<Output> InvokeResult;
 
         protected void when_creating_interceptors()
@@ -147,11 +147,11 @@
         }
 
-        protected void given_mock_interceptor(Func<IEnumerable<OutputMember>> overriddenMethod)
+        protected void given_mock_interceptor(Func<IEnumerable<Output>> overriddenMethod)
         {
             given_mock_interceptor(i =>
             {
                 i.Expect(x => x.BeforeExecute(It.IsAny<IOperation>())).Returns(true);
-                i.Expect(x => x.AfterExecute(It.IsAny<IOperation>(), It.IsAny<IEnumerable<OutputMember>>())).Returns(true);
-                i.Expect(x => x.RewriteOperation(It.IsAny<Func<IEnumerable<OutputMember>>>())).Returns(overriddenMethod);
+                i.Expect(x => x.AfterExecute(It.IsAny<IOperation>(), It.IsAny<IEnumerable<Output>>())).Returns(true);
+                i.Expect(x => x.RewriteOperation(It.IsAny<Func<IEnumerable<Output>>>())).Returns(overriddenMethod);
             });
             
@@ -163,5 +163,5 @@
             {
                 before(i.Expect(x => x.BeforeExecute(It.IsAny<IOperation>())));
-                after(i.Expect(x => x.AfterExecute(It.IsAny<IOperation>(), It.IsAny<IEnumerable<OutputMember>>())));
+                after(i.Expect(x => x.AfterExecute(It.IsAny<IOperation>(), It.IsAny<IEnumerable<Output>>())));
             });
         }
Index: /trunk/src/core/OpenRasta.Tests.Unit/TypeSystem/Surrogate2_Specification.cs
===================================================================
--- /trunk/src/core/OpenRasta.Tests.Unit/TypeSystem/Surrogate2_Specification.cs	(revision 429)
+++ /trunk/src/core/OpenRasta.Tests.Unit/TypeSystem/Surrogate2_Specification.cs	(revision 431)
@@ -1,4 +1,5 @@
 ﻿using System;
 using NUnit.Framework;
+using OpenRasta.Binding.Path;
 using OpenRasta.Testing;
 using OpenRasta.TypeSystem;
@@ -16,5 +17,5 @@
         public when_using_type_properties()
         {
-            _ts = new ReflectionBasedTypeSystem(new SurrogateBuilderProvider(new ISurrogateBuilder[] { new Saruman() }), new PathManager());
+            _ts = new ReflectionBasedTypeSystem(new SurrogateBuilderProvider(new ISurrogateBuilder[] { new Saruman() }), new DefaultPathManager());
         }
 
@@ -81,5 +82,5 @@
         public when_using_type_builders()
         {
-            _ts = new ReflectionBasedTypeSystem(new SurrogateBuilderProvider(new ISurrogateBuilder[] { new Saruman() }), new PathManager());
+            _ts = new ReflectionBasedTypeSystem(new SurrogateBuilderProvider(new ISurrogateBuilder[] { new Saruman() }), new DefaultPathManager());
         }
 
Index: /trunk/src/core/OpenRasta.Tests.Unit/Diagnostics/Eventing/EventPubSub_Specification.cs
===================================================================
--- /trunk/src/core/OpenRasta.Tests.Unit/Diagnostics/Eventing/EventPubSub_Specification.cs	(revision 431)
+++ /trunk/src/core/OpenRasta.Tests.Unit/Diagnostics/Eventing/EventPubSub_Specification.cs	(revision 431)
@@ -0,0 +1,172 @@
+﻿using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using Moq;
+using NUnit.Framework;
+using OpenRasta.DI;
+using OpenRasta.Diagnostics.Eventing;
+using OpenRasta.Testing;
+
+namespace OpenRasta.Tests.Unit.Diagnostics.Eventing
+{
+    public class event_messages : Testing.context
+    {
+        [Test]
+        public void the_message_uri_is_a_combination_of_category_and_name()
+        {
+            var message = new EventMessage(new Uri("http://errors.openrasta.com/category/"), "name");
+            message.Id.ShouldBe("http://errors.openrasta.com/category/name");
+        }
+        [Test]
+        public void the_format_gets_properties_replaced()
+        {
+            var message = new EventMessage(EventSource.OpenRasta, "test")
+            {
+                Data = { { "Message", "MessageText" } },
+                Format = "before {{Message}} after {{Message}}"
+            };
+            message.ToString().ShouldBe("before MessageText after MessageText");
+        }
+        [Test]
+        public void the_debug_message_gets_its_values_from_resources()
+        {
+            var debugMessage = new EventMessage(EventSource.OpenRasta, "debug");
+            debugMessage.Format.ShouldNotBeNull().ShouldNotBe(string.Empty);
+        }
+    }
+
+    public class event_parser : context.xhtml_event_message_parser
+    {
+        [Test]
+        public void the_title_gets_parsed_from_the_xml_nodes()
+        {
+            given_xhtml("<head xmlns=\"http://www.w3.org/1999/xhtml\"><title>A message</title></head>");
+
+            when_parsing();
+
+            Message.Title.ShouldBe("A message");
+        }
+        [Test]
+        public void the_format_is_parsed_from_the_dd_tag_with_exception()
+        {
+            given_xhtml(FORMAT_ML);
+
+            when_parsing();
+
+            Message.Format.ShouldBe("{{EventLogId}}");
+        }
+        [Test]
+        public void the_extra_dd_tags_are_set_as_data()
+        {
+            given_xhtml(FORMAT_ML);
+
+            when_parsing();
+
+            Message.Data["EventLogId"].ShouldBe("1");
+        }
+    }
+    public class collectors_receive_messages : context.collector_context<EventMessage>
+    {
+        [Test]
+        public void for_exact_message_type()
+        {
+            given_collector();
+            var messageToPublish = new EventMessage(EventSource.OpenRasta, "message");
+
+            when_publishing(messageToPublish);
+
+            then_collector_received_message(messageToPublish);
+        }
+        [Test]
+        public void for_any_inherited_message_type()
+        {
+            given_collector();
+            var messageToPublish = new TestMessage();
+
+            when_publishing(messageToPublish);
+
+            then_collector_received_message(messageToPublish);
+        }
+        private class TestMessage : EventMessage
+        {
+            public TestMessage() : base(EventSource.OpenRasta, "test")
+            {
+                
+            }
+        }
+    }
+    
+    namespace context
+    {
+
+        public class xhtml_event_message_parser : Testing.context
+        {
+            XmlReader XmlReader;
+            XhtmlEventMessageParser Parser;
+            protected EventMessage Message;
+            protected string FORMAT_ML =@"<body xmlns=""http://www.w3.org/1999/xhtml"">
+    <dl>
+        <dt>Format</dt><dd>Not</dd>
+    </dl>
+    <dl class=""description"">
+        <dt>EventLogId</dt><dd>1</dd>
+        <dt>Format</dt><dd><span class=""var"">EventLogId</span></dd>
+    </dl>
+</body>";
+
+            protected void when_parsing()
+            {
+                Parser = new XhtmlEventMessageParser(XmlReader);
+
+                Parser.Read(Message = new EventMessage(new Uri("http://errors.openrasta.com/category/"), "name"));
+            }
+
+            protected void given_xhtml(string html)
+            {
+                this.XmlReader = XmlReader.Create(new StringReader(html));
+            }
+        }
+        public class collector_context<TMessage> : Testing.context where TMessage : IEventMessage
+        {
+            protected InternalDependencyResolver Resolver;
+            protected EventCollector<TMessage> Collector;
+            protected IEventPublisher Publisher;
+
+            public collector_context()
+            {
+                Resolver = new InternalDependencyResolver();
+                Resolver.AddDependencyInstance(typeof(IDependencyResolver), Resolver);
+                Resolver.AddDependency<IEventPublisher, EventPublisher>(DependencyLifetime.Singleton);
+                Publisher = Resolver.Resolve<IEventPublisher>();
+            }
+            protected void given_collector()
+            {
+                Resolver.AddDependencyInstance(typeof(IEventCollector<TMessage>), Collector = new EventCollector<TMessage>());
+            }
+            protected void when_publishing<T>(T message) where T:TMessage
+            {
+                Publisher.Publish(message);
+            }
+            protected void then_collector_received_message<T>(T message) where T:TMessage
+            {
+                Collector.Messages.ShouldContain(message);
+            }
+        }
+        public class EventCollector<T> : IEventCollector<T> where T:IEventMessage
+        {
+            public EventCollector()
+            {
+                Messages = new List<T>();
+            }
+            public void Receive(T message)
+            {
+                Messages.Add(message);
+            }
+
+            public IList<T> Messages { get; set; }
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta.Tests.Unit/OpenRasta.Tests.Unit.csproj
===================================================================
--- /trunk/src/core/OpenRasta.Tests.Unit/OpenRasta.Tests.Unit.csproj	(revision 429)
+++ /trunk/src/core/OpenRasta.Tests.Unit/OpenRasta.Tests.Unit.csproj	(revision 431)
@@ -77,4 +77,5 @@
     <Compile Include="Configuration\MetaModelHandler_Specification.cs" />
     <Compile Include="Configuration\MetaModel_Specification.cs" />
+    <Compile Include="Diagnostics\Eventing\EventPubSub_Specification.cs" />
     <Compile Include="Diagnostics\LogSource_Specification.cs" />
     <Compile Include="Fakes\Address.cs" />
@@ -199,4 +200,7 @@
     <None Include="Settings.StyleCop" />
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="NewFolder1\" />
+  </ItemGroup>
   <Import Project="..\..\..\build\defaults.targets" />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /trunk/src/core/OpenRasta/UriExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/UriExtensions.cs	(revision 412)
+++ /trunk/src/core/OpenRasta/UriExtensions.cs	(revision 431)
@@ -79,4 +79,8 @@
             return builder.Uri;
         }
+        public static Uri Combine(this Uri uri, string segment)
+        {
+            return new Uri(uri, new Uri(segment, UriKind.Relative));
+        }
     }
 }
Index: /trunk/src/core/OpenRasta/OpenRasta.csproj
===================================================================
--- /trunk/src/core/OpenRasta/OpenRasta.csproj	(revision 429)
+++ /trunk/src/core/OpenRasta/OpenRasta.csproj	(revision 431)
@@ -140,4 +140,9 @@
     <Compile Include="Data\QueryableExtensions.cs" />
     <Compile Include="Diagnostics\CommunicationContextErrorCollector.cs" />
+    <Compile Include="Diagnostics\Eventing\EventMessage.cs" />
+    <Compile Include="Diagnostics\Eventing\EventSource.cs" />
+    <Compile Include="Diagnostics\Eventing\IEventMessage.cs" />
+    <Compile Include="Diagnostics\Eventing\IEventPublisher.cs" />
+    <Compile Include="Diagnostics\EventLogger.cs" />
     <Compile Include="Diagnostics\LogCategoryAttribute.cs" />
     <Compile Include="Diagnostics\LogSource.cs" />
@@ -151,4 +156,6 @@
     <Compile Include="Linq\Visitors\SubtreeEvaluator.cs" />
     <Compile Include="Linq\Visitors\SubtreeNominator.cs" />
+    <Compile Include="OperationModel\OperationMembers.cs" />
+    <Compile Include="Pipeline\Contributors\OptionsVerbContributor.cs" />
     <Compile Include="Pipeline\Diagnostics\PipelineLogSource.cs" />
     <Compile Include="DI\Internal\ContextStoreDependency.cs" />
@@ -243,7 +250,12 @@
     <Compile Include="OperationModel\IOperationProcessor.cs" />
     <Compile Include="OperationModel\OperationRequestCodecExtensions.cs" />
-    <Compile Include="OperationModel\OutputMember.cs" />
+    <Compile Include="OperationModel\Output.cs" />
     <Compile Include="Pipeline\IContextStore.cs" />
     <Compile Include="Pipeline\IContextStoreDependencyCleaner.cs" />
+    <Compile Include="Resources\Events.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Events.resx</DependentUpon>
+    </Compile>
     <Compile Include="Security\RequiresRoleAttribute.cs" />
     <Compile Include="Security\RequiresRoleInterceptor.cs" />
@@ -552,5 +564,5 @@
     <Compile Include="Pipeline\Contributors\OperationCodecSelectorContributor.cs" />
     <Compile Include="Pipeline\Contributors\OperationCreatorContributor.cs" />
-    <Compile Include="OperationModel\InputMember.cs" />
+    <Compile Include="OperationModel\Input.cs" />
     <Compile Include="Pipeline\Contributors\OperationFilterContributor.cs" />
     <Compile Include="Pipeline\Contributors\OperationHydratorContributor.cs" />
@@ -618,6 +630,17 @@
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="Resources\Events.resx">
+      <SubType>Designer</SubType>
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Events.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\openrasta\debug.xhtml" />
+  </ItemGroup>
+  <ItemGroup>
     <Folder Include="Compat\" />
     <Folder Include="Configuration\Settings\" />
+    <Folder Include="Resources\openrasta.binding\" />
     <Folder Include="Web\Codecs\" />
     <Folder Include="Web\Filters\" />
Index: /trunk/src/core/OpenRasta/DI/InternalDependencyResolver.cs
===================================================================
--- /trunk/src/core/OpenRasta/DI/InternalDependencyResolver.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/DI/InternalDependencyResolver.cs	(revision 431)
@@ -10,4 +10,5 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
@@ -85,9 +86,9 @@
         }
 
-        protected override IEnumerable<TService> ResolveAllCore<TService>()
+        protected override IEnumerable ResolveAllCore(Type serviceType)
         {
-            return from dependency in Registrations[typeof(TService)]
+            return from dependency in Registrations[serviceType]
                    where dependency.LifetimeManager.IsRegistrationAvailable(dependency)
-                   select (TService)Resolve(dependency);
+                   select Resolve(dependency);
         }
 
Index: /trunk/src/core/OpenRasta/DI/DependencyResolverExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/DI/DependencyResolverExtensions.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/DI/DependencyResolverExtensions.cs	(revision 431)
@@ -10,4 +10,6 @@
 
 using System;
+using System.Collections.Generic;
+using System.Linq;
 
 namespace OpenRasta.DI
@@ -111,5 +113,8 @@
             return resolver.Resolve(type);
         }
-
+        public static IEnumerable<TService> ResolveAll<TService>(this IDependencyResolver resolver)
+        {
+            return resolver.ResolveAll(typeof(TService)).Cast<TService>();
+        }
         public static T ResolveWithDefault<T>(this IDependencyResolver resolver, Func<T> defaultValue)
             where T : class
Index: /trunk/src/core/OpenRasta/DI/DependencyResolverCore.cs
===================================================================
--- /trunk/src/core/OpenRasta/DI/DependencyResolverCore.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/DI/DependencyResolverCore.cs	(revision 431)
@@ -10,4 +10,5 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 
@@ -64,9 +65,9 @@
         }
 
-        public IEnumerable<TService> ResolveAll<TService>()
+        public IEnumerable ResolveAll(Type serviceType)
         {
             try
             {
-                return ResolveAllCore<TService>();
+                return ResolveAllCore(serviceType);
             }
             catch (Exception e)
@@ -74,9 +75,9 @@
                 if (e is DependencyResolutionException)
                     throw;
-                throw new DependencyResolutionException("An error occurred while trying to resolve type {0}.".With(typeof(TService).Name), e);
+                throw new DependencyResolutionException("An error occurred while trying to resolve type {0}.".With(serviceType.Name), e);
             }
         }
 
-        protected abstract IEnumerable<TService> ResolveAllCore<TService>();
+        protected abstract IEnumerable ResolveAllCore(Type serviceType);
         protected abstract object ResolveCore(Type serviceType);
 
Index: /trunk/src/core/OpenRasta/DI/IDependencyResolver.cs
===================================================================
--- /trunk/src/core/OpenRasta/DI/IDependencyResolver.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/DI/IDependencyResolver.cs	(revision 431)
@@ -10,4 +10,5 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 
@@ -26,5 +27,5 @@
         void AddDependencyInstance(Type registeredType, object value, DependencyLifetime dependencyLifetime);
 
-        IEnumerable<TService> ResolveAll<TService>();
+        IEnumerable ResolveAll(Type serviceType);
 
         /// <summary>
Index: /trunk/src/core/OpenRasta/Resources/Events.resx
===================================================================
--- /trunk/src/core/OpenRasta/Resources/Events.resx	(revision 431)
+++ /trunk/src/core/OpenRasta/Resources/Events.resx	(revision 431)
@@ -0,0 +1,124 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="http://errors.openrasta.com/openrasta/debug" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>openrasta\debug.xhtml;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>
Index: /trunk/src/core/OpenRasta/Resources/Events.Designer.cs
===================================================================
--- /trunk/src/core/OpenRasta/Resources/Events.Designer.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Resources/Events.Designer.cs	(revision 431)
@@ -0,0 +1,70 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.4927
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace OpenRasta.Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class Events {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Events() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRasta.Resources.Events", typeof(Events).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        public static byte[] http___errors_openrasta_com_openrasta_debug {
+            get {
+                object obj = ResourceManager.GetObject("http://errors.openrasta.com/openrasta/debug", resourceCulture);
+                return ((byte[])(obj));
+            }
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Resources/openrasta/debug.xhtml
===================================================================
--- /trunk/src/core/OpenRasta/Resources/openrasta/debug.xhtml	(revision 431)
+++ /trunk/src/core/OpenRasta/Resources/openrasta/debug.xhtml	(revision 431)
@@ -0,0 +1,15 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>Debug</title>
+    <link rel="self" href="http://errors.openrasta.com/openrasta/debug" />
+  </head>
+  <body>
+    <dl class="description">
+      <dt>EventLogId</dt>
+      <dd>1</dd>
+      <dt>Format</dt>
+      <dd>Debug: <span class="var">Message</span></dd>
+    </dl>
+  </body>
+</html>
Index: /trunk/src/core/OpenRasta/Collections/CollectionExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/Collections/CollectionExtensions.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Collections/CollectionExtensions.cs	(revision 431)
@@ -22,4 +22,5 @@
         public static class SpecializedCollectionExtensions
         {
+            
             public static void AddOrReplace<TKey, TValue>(this IDictionary<TKey, TValue> target, 
                                                           IDictionary<TKey, TValue> values)
Index: /trunk/src/core/OpenRasta/OperationModel/OperationMembers.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/OperationMembers.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/OperationModel/OperationMembers.cs	(revision 431)
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using OpenRasta.TypeSystem;
+
+namespace OpenRasta.OperationModel
+{
+    /// <summary>
+    /// Represents the inputs and outputs of an operation.
+    /// </summary>
+    public class OperationMembers
+    {
+        readonly IEnumerable<IMember> _inputs;
+        readonly IEnumerable<IMember> _outputs;
+
+        /// <summary>
+        /// Initializes a new instance of the OperationMembers class.
+        /// </summary>
+        /// <param name="inputs">The input members.</param>
+        /// <param name="outputs">The output members.</param>
+        public OperationMembers(IEnumerable<IMember> inputs, IEnumerable<IMember> outputs)
+        {
+            _inputs = inputs;
+            _outputs = outputs;
+        }
+
+        /// <summary>
+        /// Gets the list of input members an operation supports.
+        /// </summary>
+        public IEnumerable<IMember> Inputs { get; set; }
+
+        /// <summary>
+        /// Gets the list of output members an operation supports.
+        /// </summary>
+        public IEnumerable<IMember> Outputs { get; private set; }
+    }
+}
Index: /trunk/src/core/OpenRasta/OperationModel/Hydrators/Diagnostics/CodecLogSourceExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Hydrators/Diagnostics/CodecLogSourceExtensions.cs	(revision 348)
+++ /trunk/src/core/OpenRasta/OperationModel/Hydrators/Diagnostics/CodecLogSourceExtensions.cs	(revision 431)
@@ -56,5 +56,5 @@
         }
 
-        public static void ProcessingMember(this ILogger<CodecLogSource> logger, InputMember member)
+        public static void ProcessingMember(this ILogger<CodecLogSource> logger, Input member)
         {
         }
@@ -70,5 +70,5 @@
         }
 
-        public static void TryAssignValue(this ILogger<CodecLogSource> logger, InputMember member)
+        public static void TryAssignValue(this ILogger<CodecLogSource> logger, Input member)
         {
             logger.WriteDebug("Trying to assign key and values to {0} {1}.", member.Member.TypeName, member.Member.Name);
Index: /trunk/src/core/OpenRasta/OperationModel/MethodBased/MethodBasedOperation.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/MethodBased/MethodBasedOperation.cs	(revision 348)
+++ /trunk/src/core/OpenRasta/OperationModel/MethodBased/MethodBasedOperation.cs	(revision 431)
@@ -22,10 +22,16 @@
             _ownerType = ownerType;
             _parameterBinders = method.InputMembers.ToDictionary(x => x, x => binderLocator.GetBinder(x));
-            Inputs = _parameterBinders.Select(x => new InputMember(x.Key, x.Value, x.Key.IsOptional));
+            Inputs = _parameterBinders.Select(x => new Input(x.Key, x.Value, x.Key.IsOptional));
             ExtendedProperties = new NullBehaviorDictionary<object, object>();
+            Members = new OperationMembers(method.InputMembers.Cast<IMember>(), method.OutputMembers.Cast<IMember>());
+        }
+
+        public OperationMembers Members
+        {
+            get; private set;
         }
 
         public IDictionary ExtendedProperties { get; private set; }
-        public IEnumerable<InputMember> Inputs { get; private set; }
+        public IEnumerable<Input> Inputs { get; private set; }
 
         public string Name
@@ -51,5 +57,5 @@
         }
 
-        public IEnumerable<OutputMember> Invoke()
+        public IEnumerable<Output> Invoke()
         {
             if (!Inputs.AllReady())
@@ -73,5 +79,5 @@
                 return new[]
                 {
-                    new OutputMember
+                    new Output
                     {
                         Member = _method.OutputMembers.Single(), 
@@ -80,5 +86,5 @@
                 };
             }
-            return new OutputMember[0];
+            return new Output[0];
         }
 
Index: /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationWithInterceptors.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationWithInterceptors.cs	(revision 317)
+++ /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationWithInterceptors.cs	(revision 431)
@@ -21,7 +21,12 @@
         }
 
-        public IEnumerable<InputMember> Inputs
+        public IEnumerable<Input> Inputs
         {
             get { return _wrappedOperation.Inputs; }
+        }
+
+        public OperationMembers Members
+        {
+            get { return _wrappedOperation.Members; }
         }
 
@@ -41,13 +46,14 @@
         }
 
-        public IEnumerable<OutputMember> Invoke()
+        public IEnumerable<Output> Invoke()
         {
             ExecutePreConditions();
 
-            Func<IEnumerable<OutputMember>> operation = () => _wrappedOperation.Invoke();
+            Func<IEnumerable<Output>> operation = () => _wrappedOperation.Invoke();
             foreach (var executingCondition in _interceptors)
             {
                 operation = executingCondition.RewriteOperation(operation) ?? operation;
             }
+
             var results = operation();
 
@@ -56,5 +62,5 @@
         }
 
-        void ExecutePostConditions(IEnumerable<OutputMember> results)
+        void ExecutePostConditions(IEnumerable<Output> results)
         {
             foreach (var postCondition in _interceptors)
@@ -87,4 +93,5 @@
                 exception = new InterceptorException(exceptionMessage, e);
             }
+
             if (exception != null)
             {
Index: /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationInterceptor.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationInterceptor.cs	(revision 317)
+++ /trunk/src/core/OpenRasta/OperationModel/Interceptors/OperationInterceptor.cs	(revision 431)
@@ -6,5 +6,5 @@
     public abstract class OperationInterceptor : IOperationInterceptor
     {
-        public virtual bool AfterExecute(IOperation operation, IEnumerable<OutputMember> outputMembers)
+        public virtual bool AfterExecute(IOperation operation, IEnumerable<Output> outputMembers)
         {
             return true;
@@ -16,5 +16,5 @@
         }
 
-        public virtual Func<IEnumerable<OutputMember>> RewriteOperation(Func<IEnumerable<OutputMember>> operationBuilder)
+        public virtual Func<IEnumerable<Output>> RewriteOperation(Func<IEnumerable<Output>> operationBuilder)
         {
             return operationBuilder;
Index: /trunk/src/core/OpenRasta/OperationModel/Interceptors/InterceptorAttribute.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Interceptors/InterceptorAttribute.cs	(revision 348)
+++ /trunk/src/core/OpenRasta/OperationModel/Interceptors/InterceptorAttribute.cs	(revision 431)
@@ -6,5 +6,5 @@
     public abstract class InterceptorAttribute : Attribute, IOperationInterceptor
     {
-        public virtual bool AfterExecute(IOperation operation, IEnumerable<OutputMember> outputMembers)
+        public virtual bool AfterExecute(IOperation operation, IEnumerable<Output> outputMembers)
         {
             return true;
@@ -16,5 +16,5 @@
         }
 
-        public virtual Func<IEnumerable<OutputMember>> RewriteOperation(Func<IEnumerable<OutputMember>> operationBuilder)
+        public virtual Func<IEnumerable<Output>> RewriteOperation(Func<IEnumerable<Output>> operationBuilder)
         {
             return operationBuilder;
Index: /trunk/src/core/OpenRasta/OperationModel/Interceptors/IOperationInterceptor.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Interceptors/IOperationInterceptor.cs	(revision 317)
+++ /trunk/src/core/OpenRasta/OperationModel/Interceptors/IOperationInterceptor.cs	(revision 431)
@@ -4,9 +4,32 @@
 namespace OpenRasta.OperationModel.Interceptors
 {
+    /// <summary>
+    /// Represents a component receiving notification before and after the execution of an operation, and able to rewrite the invocation of that operation.
+    /// </summary>
     public interface IOperationInterceptor
     {
+        /// <summary>
+        /// Executes before the operation, and controls if the operation is to be invoked.
+        /// </summary>
+        /// <param name="operation">The operation being executed</param>
+        /// <returns>true if the execution can go through, otherwise false.</returns>
         bool BeforeExecute(IOperation operation);
-        Func<IEnumerable<OutputMember>> RewriteOperation(Func<IEnumerable<OutputMember>> operationBuilder);
-        bool AfterExecute(IOperation operation, IEnumerable<OutputMember> outputMembers);
+
+        /// <summary>
+        /// Rewrites the operation execution.
+        /// </summary>
+        /// <param name="operationBuilder">The signature of the Invoke method on
+        /// <see cref="IOperation"/>, this represents the method that will be
+        /// executed when the operation is invoked.</param>
+        /// <returns>The rewritten operation invocation.</returns>
+        Func<IEnumerable<Output>> RewriteOperation(Func<IEnumerable<Output>> operationBuilder);
+
+        /// <summary>
+        /// Executes after the operation has executed, and controls if the response can be sent back to the client.
+        /// </summary>
+        /// <param name="operation">The operation that was executed.</param>
+        /// <param name="outputMembers">The output members returned by the operation.</param>
+        /// <returns><c>true</c> if the result of the operation can be processed further, or <c>false</c> to stop execution.</returns>
+        bool AfterExecute(IOperation operation, IEnumerable<Output> outputMembers);
     }
 }
Index: /trunk/src/core/OpenRasta/OperationModel/OperationExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/OperationExtensions.cs	(revision 317)
+++ /trunk/src/core/OpenRasta/OperationModel/OperationExtensions.cs	(revision 431)
@@ -6,5 +6,5 @@
     public static class OperationExtensions
     {
-        public static bool AllReady(this IEnumerable<InputMember> members)
+        public static bool AllReady(this IEnumerable<Input> members)
         {
             return members.All(x => x.IsReadyForAssignment);
@@ -16,5 +16,5 @@
         /// <param name="members"></param>
         /// <returns></returns>
-        public static int CountReady(this IEnumerable<InputMember> members)
+        public static int CountReady(this IEnumerable<Input> members)
         {
             return members.Count(x => x.IsReadyForAssignment);
@@ -26,5 +26,5 @@
         /// <param name="members"></param>
         /// <returns></returns>
-        public static IEnumerable<InputMember> Optional(this IEnumerable<InputMember> members)
+        public static IEnumerable<Input> Optional(this IEnumerable<Input> members)
         {
             return members.Where(x => x.IsOptional);
@@ -36,5 +36,5 @@
         /// <param name="members"></param>
         /// <returns></returns>
-        public static IEnumerable<InputMember> Required(this IEnumerable<InputMember> members)
+        public static IEnumerable<Input> Required(this IEnumerable<Input> members)
         {
             return members.Where(x => !x.IsOptional);
Index: /trunk/src/core/OpenRasta/OperationModel/Input.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Input.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/OperationModel/Input.cs	(revision 431)
@@ -0,0 +1,29 @@
+using OpenRasta.Binding;
+using OpenRasta.TypeSystem;
+
+namespace OpenRasta.OperationModel
+{
+    /// <summary>
+    /// Represents the input members of an operation.
+    /// </summary>
+    public class Input
+    {
+        public Input(IMember member, IObjectBinder binder, bool isOptional)
+        {
+            Member = member;
+            Binder = binder;
+            IsOptional = isOptional;
+        }
+
+        public IObjectBinder Binder { get; private set; }
+
+        public bool IsOptional { get; private set; }
+
+        public bool IsReadyForAssignment
+        {
+            get { return IsOptional || !Binder.IsEmpty; }
+        }
+
+        public IMember Member { get; private set; }
+    }
+}
Index: /trunk/src/core/OpenRasta/OperationModel/Output.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Output.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/OperationModel/Output.cs	(revision 431)
@@ -0,0 +1,10 @@
+using OpenRasta.TypeSystem;
+
+namespace OpenRasta.OperationModel
+{
+    public class Output
+    {
+        public IMember Member { get; set; }
+        public object Value { get; set; }
+    }
+}
Index: /trunk/src/core/OpenRasta/OperationModel/Filters/UriParametersFilter.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/Filters/UriParametersFilter.cs	(revision 399)
+++ /trunk/src/core/OpenRasta/OperationModel/Filters/UriParametersFilter.cs	(revision 431)
@@ -122,5 +122,5 @@
         }
 
-        bool TrySetPropertyAndRemoveUsedKey(InputMember member, string uriParameterName, NameValueCollection uriParameters, ValueConverter<string> converter)
+        bool TrySetPropertyAndRemoveUsedKey(Input member, string uriParameterName, NameValueCollection uriParameters, ValueConverter<string> converter)
         {
             if (member.Binder.SetProperty(uriParameterName, uriParameters.GetValues(uriParameterName), converter))
Index: /trunk/src/core/OpenRasta/OperationModel/IOperation.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/IOperation.cs	(revision 317)
+++ /trunk/src/core/OpenRasta/OperationModel/IOperation.cs	(revision 431)
@@ -5,10 +5,34 @@
 namespace OpenRasta.OperationModel
 {
+    /// <summary>
+    /// Represents an operation that can be executed, usually mapped to a method.
+    /// </summary>
     public interface IOperation : IAttributeProvider
     {
-        IEnumerable<InputMember> Inputs { get; }
+        /// <summary>
+        /// Gets the list of inputs to the operation, for example the in parameters of a method.
+        /// </summary>
+        IEnumerable<Input> Inputs { get; }
+
+        /// <summary>
+        /// Gets the input and output members this operation contains.
+        /// </summary>
+        OperationMembers Members { get; }
+
+        /// <summary>
+        /// Gets a list of properties annotating an operation.
+        /// </summary>
         IDictionary ExtendedProperties { get; }
+
+        /// <summary>
+        /// Gets the name of an operation.
+        /// </summary>
         string Name { get; }
-        IEnumerable<OutputMember> Invoke();
+
+        /// <summary>
+        /// Invokes the operation, returning a list of outputs.
+        /// </summary>
+        /// <returns></returns>
+        IEnumerable<Output> Invoke();
     }
 }
Index: /unk/src/core/OpenRasta/OperationModel/InputMember.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/InputMember.cs	(revision 328)
+++ 	(revision )
@@ -1,25 +1,0 @@
-using OpenRasta.Binding;
-using OpenRasta.TypeSystem;
-
-namespace OpenRasta.OperationModel
-{
-    public class InputMember
-    {
-        public InputMember(IMember member, IObjectBinder binder, bool isOptional)
-        {
-            Member = member;
-            Binder = binder;
-            IsOptional = isOptional;
-        }
-
-        public IObjectBinder Binder { get; private set; }
-        public bool IsOptional { get; private set; }
-
-        public bool IsReadyForAssignment
-        {
-            get { return IsOptional || !Binder.IsEmpty; }
-        }
-
-        public IMember Member { get; private set; }
-    }
-}
Index: /unk/src/core/OpenRasta/OperationModel/OutputMember.cs
===================================================================
--- /trunk/src/core/OpenRasta/OperationModel/OutputMember.cs	(revision 328)
+++ 	(revision )
@@ -1,10 +1,0 @@
-using OpenRasta.TypeSystem;
-
-namespace OpenRasta.OperationModel
-{
-    public class OutputMember
-    {
-        public IMember Member { get; set; }
-        public object Value { get; set; }
-    }
-}
Index: /trunk/src/core/OpenRasta/Text/StringBuilderExtensions.cs
===================================================================
--- /trunk/src/core/OpenRasta/Text/StringBuilderExtensions.cs	(revision 426)
+++ /trunk/src/core/OpenRasta/Text/StringBuilderExtensions.cs	(revision 431)
@@ -79,5 +79,4 @@
 
         }
-
     }
 }
Index: /trunk/src/core/OpenRasta/Pipeline/PipelineStage.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/PipelineStage.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Pipeline/PipelineStage.cs	(revision 431)
@@ -20,4 +20,9 @@
         public PipelineContinuation CurrentState { get; set; }
 
+        /// <summary>
+        /// Resumes the pipeline from the first pipeline contributor of the provided type.
+        /// </summary>
+        /// <typeparam name="T">The type of the pipeline contributor</typeparam>
+        /// <returns>true if the pipeline could be resumed, otherwise false.</returns>
         public bool ResumeFrom<T>() where T:IPipelineContributor
         {
Index: /trunk/src/core/OpenRasta/Pipeline/Contributors/OptionsVerbContributor.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/Contributors/OptionsVerbContributor.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Pipeline/Contributors/OptionsVerbContributor.cs	(revision 431)
@@ -0,0 +1,21 @@
+﻿using OpenRasta.Web;
+
+namespace OpenRasta.Pipeline.Contributors
+{
+    public class OptionsVerbContributor : IPipelineContributor
+    {
+        public void Initialize(IPipeline pipelineNotification)
+        {
+            pipelineNotification.Notify(RespondToOptionMethod)
+                .After<KnownStages.IOperationFiltering>()
+                .And
+                .Before<KnownStages.IOperationExecution>();
+        }
+
+        PipelineContinuation RespondToOptionMethod(ICommunicationContext arg)
+        {
+
+            return PipelineContinuation.Continue;
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Pipeline/PipelineData.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/PipelineData.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Pipeline/PipelineData.cs	(revision 431)
@@ -20,4 +20,24 @@
 namespace OpenRasta.Pipeline
 {
+    public interface IOperationModelState
+    {
+        IEnumerable<IOperation> AllOperations { get; set; }
+        IEnumerable<IOperation> SelectedOperations { get; set; }
+        IEnumerable<IOperation> DiscardedOperations { get; set; }
+        IEnumerable<IType> HandlerTypes { get; set; }
+    }
+    public interface IPipelineState
+    {
+        PipelineStage Stage { get; set; }
+    }
+    public interface IRequestState
+    {
+        UriRegistration RequestedUri { get; set; }
+
+    }
+    public interface IResponseState
+    {
+        
+    }
     /// <summary>
     /// </summary>
@@ -33,13 +53,4 @@
         const string SELECTED_HANDLERS = OR_PIPELINE + "SelectedHandlers";
         const string SELECTED_RESOURCE = OR_PIPELINE + "SelectedResource";
-
-        /// <summary>
-        /// Gets the type of the handler selected when matching a request against the registerd resource.
-        /// </summary>
-        public Type HandlerType
-        {
-            get { return SafeGet<Type>(HANDLER_TYPE); }
-            set { base[HANDLER_TYPE] = value; }
-        }
 
         public IEnumerable<IOperation> Operations
Index: /trunk/src/core/OpenRasta/Pipeline/PipelineRunner.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/PipelineRunner.cs	(revision 383)
+++ /trunk/src/core/OpenRasta/Pipeline/PipelineRunner.cs	(revision 431)
@@ -26,5 +26,4 @@
         readonly ICollection<Notification> _notificationRegistrations = new List<Notification>();
 
-
         readonly IDependencyResolver _resolver;
         IEnumerable<ContributorCall> _callGraph;
@@ -42,6 +41,6 @@
 
         public bool IsInitialized { get; private set; }
+        public ILogger Log { get; set; }
         public ILogger<PipelineLogSource> PipelineLog { get; set; }
-        public ILogger Log { get; set; }
 
         IEnumerable<ContributorCall> IPipeline.CallGraph
@@ -49,9 +48,5 @@
             get { return _callGraph; }
         }
-        void CheckPipelineIsInitialized()
-        {
-            if (!IsInitialized)
-                throw new InvalidOperationException("The pipeline has not been initialized and cannot run.");
-        }
+
         public void Initialize()
         {
@@ -65,6 +60,8 @@
                     _contributors.Add(item);
                 }
+
                 _callGraph = GenerateCallGraph();
             }
+
             IsInitialized = true;
             PipelineLog.WriteInfo("Pipeline has been successfully initialized.");
@@ -76,6 +73,7 @@
             {
                 PipelineLog.WriteWarning("A pipeline registration through Notify() has been done after the pipeline was initialized. Ignoring.");
-                return new Notification(this,action);
-            }
+                return new Notification(this, action);
+            }
+
             var notification = new Notification(this, action);
             _notificationRegistrations.Add(notification);
@@ -94,4 +92,145 @@
             RunCallGraph(context, context.PipelineData.PipelineStage);
         }
+
+        protected virtual void AbortPipeline(ICommunicationContext context)
+        {
+            PipelineLog.WriteError("Aborting the pipeline and rendering the errors.");
+            context.OperationResult = new OperationResult.InternalServerError
+            {
+                Title =
+                    "The request could not be processed because of a fatal error. See log below.", 
+                ResponseResource = context.ServerErrors
+            };
+            context.PipelineData.ResponseCodec = null;
+            context.Response.Entity.Instance = context.ServerErrors;
+            context.Response.Entity.Codec = null;
+            context.Response.Entity.ContentLength = null;
+
+            Log.WriteError("An error has occurred and the processing of the request has stopped.\r\n{0}", context.ServerErrors.Aggregate(string.Empty, (str, error) => str + "\r\n" + error.ToString()));
+        }
+
+        protected virtual PipelineContinuation ExecuteContributor(ICommunicationContext context, ContributorCall call)
+        {
+            using (PipelineLog.Operation(this, "Executing contributor {0}.{1}".With(call.ContributorTypeName, call.Action.Method.Name)))
+            {
+                PipelineContinuation nextStep;
+                try
+                {
+                    nextStep = call.Action(context);
+                }
+                catch (Exception e)
+                {
+                    context.ServerErrors.Add(new Error
+                    {
+                        Title = "Fatal error", 
+                        Message = "An exception was thrown while processing a pipeline contributor", 
+                        Exception = e
+                    });
+                    nextStep = PipelineContinuation.Abort;
+                }
+
+                return nextStep;
+            }
+        }
+
+        protected virtual void FinishPipeline(ICommunicationContext context)
+        {
+            PipelineLog.WriteInfo("Pipeline finished.");
+        }
+
+
+        static IEnumerable<DependencyNode<ContributorNotification>> GetCompatibleTypes(DependencyTree<ContributorNotification> tree, 
+                                                                                       DependencyNode<ContributorNotification> notificationNode, 
+                                                                                       IEnumerable<Type> beforeTypes)
+        {
+            return from childType in beforeTypes
+                   from compatibleNode in tree.Nodes
+                   where compatibleNode != notificationNode
+                         && childType.IsAssignableFrom(compatibleNode.Value.Contributor.GetType())
+                   select compatibleNode;
+        }
+
+        bool CanBeExecuted(ContributorCall call)
+        {
+            if (call.Action == null)
+            {
+                PipelineLog.WriteWarning("Contributor call for {0} had a null Action.", call.ContributorTypeName);
+                return false;
+            }
+
+            return true;
+        }
+
+        void CheckPipelineIsInitialized()
+        {
+            if (!IsInitialized)
+                throw new InvalidOperationException("The pipeline has not been initialized and cannot run.");
+        }
+
+        IEnumerable<ContributorCall> GenerateCallGraph()
+        {
+            var bootstrapper = _contributors.OfType<KnownStages.IBegin>().Single();
+            var tree = new DependencyTree<ContributorNotification>(
+                new ContributorNotification(bootstrapper, new Notification(this, null)));
+
+            foreach (var contrib in _contributors.Where(x => x != bootstrapper))
+            {
+                _notificationRegistrations.Clear();
+                using (PipelineLog.Operation(this, "Initializing contributor {0}.".With(contrib.GetType().Name)))
+                    contrib.Initialize(this);
+                foreach (var reg in _notificationRegistrations.DefaultIfEmpty(new Notification(this, null)))
+                {
+                    tree.CreateNode(new ContributorNotification(contrib, reg));
+                }
+            }
+
+            foreach (var notificationNode in tree.Nodes)
+            {
+                foreach (var parentNode in GetCompatibleTypes(tree, 
+                                                              notificationNode, 
+                                                              notificationNode.Value.Notification.AfterTypes))
+                    parentNode.ChildNodes.Add(notificationNode);
+                foreach (var childNode in GetCompatibleTypes(tree, 
+                                                             notificationNode, 
+                                                             notificationNode.Value.Notification.BeforeTypes))
+                    childNode.ParentNodes.Add(notificationNode);
+            }
+
+            var graph = tree.GetCallGraph().Select(x =>
+                                                   new ContributorCall(x.Value.Contributor, x.Value.Notification.Target, x.Value.Notification.Description));
+            LogContributorCallChainCreated(graph);
+            return graph;
+        }
+
+        IEnumerable<IPipelineContributor> GetContributorsOfType(Type contributorType)
+        {
+            return from contributor in _contributors
+                   where contributorType.IsAssignableFrom(contributor.GetType())
+                   select contributor;
+        }
+
+        void LogContributorCallChainCreated(IEnumerable<ContributorCall> callGraph)
+        {
+            PipelineLog.WriteInfo("Contributor call chain has been processed and results in the following pipeline:");
+            int pos = 0;
+            foreach (var contributor in callGraph)
+                PipelineLog.WriteInfo("{0} {1}", pos++, contributor.ContributorTypeName);
+        }
+
+        void RenderNow(ICommunicationContext context, PipelineStage stage)
+        {
+            PipelineLog.WriteDebug("Pipeline is in RenderNow mode.");
+            if (!stage.ResumeFrom<KnownStages.IOperationResultInvocation>())
+            {
+                using (PipelineLog.Operation(this, "Rendering contributor has already been executed. Calling a nested pipeline to render the error."))
+                {
+                    var nestedPipeline = new PipelineStage(this);
+                    if (!nestedPipeline.ResumeFrom<KnownStages.IOperationResultInvocation>())
+                        throw new InvalidOperationException("Could not find an IOperationResultInvocation in the new pipeline.");
+                    RunCallGraph(context, nestedPipeline);
+                }
+            }
+        }
+
         void RunCallGraph(ICommunicationContext context, PipelineStage stage)
         {
@@ -116,136 +255,7 @@
                             FinishPipeline(context);
                             return;
-
                     }
                 }
             }
-        }
-        void RenderNow(ICommunicationContext context, PipelineStage stage)
-        {
-            PipelineLog.WriteDebug("Pipeline is in RenderNow mode.");
-            if (!stage.ResumeFrom<KnownStages.IOperationResultInvocation>())
-            {
-                using (PipelineLog.Operation(this, "Rendering contributor has already been executed. Calling a nested pipeline to render the error."))
-                {
-                    var nestedPipeline = new PipelineStage(this);
-                    if (!nestedPipeline.ResumeFrom<KnownStages.IOperationResultInvocation>())
-                        throw new InvalidOperationException("Could not find an IOperationResultInvocation in the new pipeline.");
-                    RunCallGraph(context, nestedPipeline);
-                }
-            }
-        }
-
-        bool CanBeExecuted(ContributorCall call)
-        {
-            if (call.Action == null)
-            {
-                PipelineLog.WriteWarning("Contributor call for {0} had a null Action.", call.ContributorTypeName);
-                return false;
-            }
-            return true;
-        }
-
-        protected virtual void AbortPipeline(ICommunicationContext context)
-        {
-            PipelineLog.WriteError("Aborting the pipeline and rendering the errors.");
-            context.OperationResult = new OperationResult.InternalServerError
-            {
-                Title =
-                    "The request could not be processed because of a fatal error. See log below.",
-                ResponseResource = context.ServerErrors
-            };
-            context.PipelineData.ResponseCodec = null;
-            context.Response.Entity.Instance = context.ServerErrors;
-            context.Response.Entity.Codec = null;
-            context.Response.Entity.ContentLength = null;
-
-            Log.WriteError("An error has occurred and the processing of the request has stopped.\r\n{0}", context.ServerErrors.Aggregate(string.Empty, (str, error) => str + "\r\n" + error.ToString()));
-        }
-
-        protected virtual PipelineContinuation ExecuteContributor(ICommunicationContext context, ContributorCall call)
-        {
-            using (PipelineLog.Operation(this, "Executing contributor {0}.{1}".With(call.ContributorTypeName, call.Action.Method.Name)))
-            {
-                PipelineContinuation nextStep;
-                try
-                {
-                    nextStep = call.Action(context);
-                }
-                catch (Exception e)
-                {
-                    context.ServerErrors.Add(new Error
-                    {
-                        Title = "Fatal error",
-                        Message = "An exception was thrown while processing a pipeline contributor",
-                        Exception = e
-                    });
-                    nextStep = PipelineContinuation.Abort;
-                }
-                return nextStep;
-            }
-        }
-
-        protected virtual void FinishPipeline(ICommunicationContext context)
-        {
-            PipelineLog.WriteInfo("Pipeline finished.");
-        }
-
-
-        IEnumerable<ContributorCall> GenerateCallGraph()
-        {
-            var bootstrapper = _contributors.OfType<KnownStages.IBegin>().Single();
-            var tree = new DependencyTree<ContributorNotification>(
-                new ContributorNotification(bootstrapper, new Notification(this, null)));
-
-            foreach (var contrib in _contributors.Where(x=>x != bootstrapper))
-            {
-                _notificationRegistrations.Clear();
-                using (PipelineLog.Operation(this, "Initializing contributor {0}.".With(contrib.GetType().Name)))
-                    contrib.Initialize(this);
-                foreach (var reg in _notificationRegistrations.DefaultIfEmpty(new Notification(this, null)))
-                {
-                    tree.CreateNode(new ContributorNotification(contrib, reg));
-                }
-            }
-            foreach (var notificationNode in tree.Nodes)
-            {
-                foreach (var parentNode in GetCompatibleTypes(tree,
-                                                              notificationNode,
-                                                              notificationNode.Value.Notification.AfterTypes))
-                    parentNode.ChildNodes.Add(notificationNode);
-                foreach (var childNode in GetCompatibleTypes(tree,
-                                                             notificationNode,
-                                                             notificationNode.Value.Notification.BeforeTypes))
-                    childNode.ParentNodes.Add(notificationNode);
-            }
-            var graph = tree.GetCallGraph().Select(x =>
-                                                   new ContributorCall(x.Value.Contributor, x.Value.Notification.Target, x.Value.Notification.Description));
-            LogContributorCallChainCreated(graph);
-            return graph;
-        }
-
-        static IEnumerable<DependencyNode<ContributorNotification>> GetCompatibleTypes(DependencyTree<ContributorNotification> tree,
-                                                                                DependencyNode<ContributorNotification> notificationNode,
-                                                                                IEnumerable<Type> beforeTypes)
-        {
-            return from childType in beforeTypes
-                   from compatibleNode in tree.Nodes
-                   where compatibleNode != notificationNode
-                         && childType.IsAssignableFrom(compatibleNode.Value.Contributor.GetType())
-                   select compatibleNode;
-        }
-        IEnumerable<IPipelineContributor> GetContributorsOfType(Type contributorType)
-        {
-            return from contributor in _contributors
-                   where contributorType.IsAssignableFrom(contributor.GetType())
-                   select contributor;
-        }
-
-        void LogContributorCallChainCreated(IEnumerable<ContributorCall> callGraph)
-        {
-            PipelineLog.WriteInfo("Contributor call chain has been processed and results in the following pipeline:");
-            int pos = 0;
-            foreach (var contributor in callGraph)
-                PipelineLog.WriteInfo("{0} {1}", pos++, contributor.ContributorTypeName);
         }
 
Index: /trunk/src/core/OpenRasta/Pipeline/IPipelineContributor.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/IPipelineContributor.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Pipeline/IPipelineContributor.cs	(revision 431)
@@ -15,5 +15,5 @@
     public interface IPipelineContributor
     {
-        void Initialize(IPipeline pipelineRunner);
+        void Initialize(IPipeline pipelineNotification);
     }
 }
Index: /trunk/src/core/OpenRasta/Pipeline/IContextStore.cs
===================================================================
--- /trunk/src/core/OpenRasta/Pipeline/IContextStore.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Pipeline/IContextStore.cs	(revision 431)
@@ -1,6 +1,16 @@
 namespace OpenRasta.Pipeline
 {
+    /// <summary>
+    ///  Provides the storage medium in which any data specific to a
+    ///  communication context is stored, including the PerRequest lifetime for
+    ///  objects.
+    /// </summary>
     public interface IContextStore
     {
+        /// <summary>
+        /// Gets or sets an object for the provided key.
+        /// </summary>
+        /// <param name="key">The key used to index the object</param>
+        /// <returns>The instance of an object, or <c>null</c> if the key does not exist.</returns>
         object this[string key] { get; set; }
     }
Index: /trunk/src/core/OpenRasta/Configuration/DefaultDependencyRegistrar.cs
===================================================================
--- /trunk/src/core/OpenRasta/Configuration/DefaultDependencyRegistrar.cs	(revision 429)
+++ /trunk/src/core/OpenRasta/Configuration/DefaultDependencyRegistrar.cs	(revision 431)
@@ -84,4 +84,6 @@
             AddLogSources();
             AddSurrogateBuilders();
+
+
         }
 
@@ -344,5 +346,5 @@
             AddPipelineContributor<HttpMethodOverriderContributor>();
             AddPipelineContributor<UriDecoratorsContributor>();
-
+            AddPipelineContributor<OptionsVerbContributor>();
             AddPipelineContributor<ResourceTypeResolverContributor>();
             AddPipelineContributor<HandlerResolverContributor>();
Index: /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventMessage.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventMessage.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventMessage.cs	(revision 431)
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+
+namespace OpenRasta.Diagnostics.Eventing
+{
+    /// <summary>
+    /// Represents an event message
+    /// </summary>
+    public interface IEventMessage
+    {
+        /// <summary>
+        /// Represents the unique identifier of an event message.
+        /// </summary>
+        Uri Id { get; }
+
+        MessageType Type { get; }
+
+        /// <summary>
+        /// Gets the title of the message
+        /// </summary>
+        string Title { get; }
+
+        /// <summary>
+        /// Gets the format of the message
+        /// </summary>
+        string Format { get; }
+
+        /// <summary>
+        /// Gets the data associated with the event message, indexed by name.
+        /// </summary>
+        /// <remarks>If an entry doesn't exist, calling the indexer will return <c>null</c>.</remarks>
+        IDictionary<string, object> Data { get; }
+    }
+    public enum MessageType
+    {
+        /// <summary>
+        /// A fault that cannot be recovered from.
+        /// </summary>
+        Fault,
+
+        /// <summary>
+        /// An error that was recovered from.
+        /// </summary>
+        Error,
+
+        /// <summary>
+        /// A warning message
+        /// </summary>
+        Warning,
+
+        /// <summary>
+        /// An informational message
+        /// </summary>
+        Information,
+
+        /// <summary>
+        /// A message used for debug-time diagnostics.
+        /// </summary>
+        Debug,
+
+        Start,
+
+        Stop
+    }
+}
Index: /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventSource.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventSource.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventSource.cs	(revision 431)
@@ -0,0 +1,32 @@
+using System;
+using OpenRasta.Web;
+
+namespace OpenRasta.Diagnostics.Eventing
+{
+    public class EventSource
+    {
+        public Uri Id { get; set; }
+
+        static Uri BaseUri { get; set; }
+        static EventSource()
+        {
+            BaseUri = new Uri("http://errors.openrasta.com/");
+            OpenRasta = new OpenRastaMessageSource();
+        }
+        public static OpenRastaMessageSource OpenRasta { get; private set; }
+
+        public EventSource(EventSource parent, string name)
+        {
+            if (name == null) throw new ArgumentNullException("name");
+
+            if (name[name.Length-1] != '/')
+                name += '/';
+            Uri baseUri = parent != null ? parent.Id : BaseUri;
+            Id = baseUri.Combine(name);
+        }
+        public static implicit operator Uri(EventSource source)
+        {
+            return source.Id;
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventMessage.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventMessage.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Diagnostics/Eventing/EventMessage.cs	(revision 431)
@@ -0,0 +1,157 @@
+﻿using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Resources;
+using System.Text;
+using System.Xml;
+using OpenRasta.Collections;
+using OpenRasta.Web;
+
+namespace OpenRasta.Diagnostics.Eventing
+{
+    public class EventMessage : IEventMessage
+    {
+        static readonly ResourceManager Events = new ResourceManager("OpenRasta.Resources.Events", typeof(EventMessage).Assembly);
+
+        public EventMessage(Uri category, string identifier)
+        {
+            if (category == null) throw new ArgumentNullException("category");
+            if (identifier == null) throw new ArgumentNullException("identifier");
+
+            Id = category.Combine(identifier);
+            Data = new NullBehaviorDictionary<string, object>();
+            Initialize(this);
+        }
+
+        public IDictionary<string, object> Data { get; private set; }
+        public string Format { get; set; }
+
+        public Uri Id { get; set; }
+
+        public string Title { get; set; }
+        public MessageType Type { get; set; }
+
+        public override string ToString()
+        {
+            var stringBuilder = new StringBuilder(Format);
+            foreach (var kv in from data in Data
+                               where data.Key != null
+                               let key = "{{" + data.Key + "}}"
+                               let index = Format.IndexOf(key, StringComparison.Ordinal)
+                               where index > -1
+                               select new { key, data = data.Value })
+            {
+                stringBuilder.Replace(kv.key, kv.data.ToString());
+            }
+
+            return stringBuilder.ToString();
+        }
+
+        static XmlReader GetResourceName(Uri uri)
+        {
+            var obj = Events.GetObject(uri.ToString()) as byte[];
+
+            return obj != null ? new XmlTextReader(new MemoryStream(obj)) : null;
+        }
+
+        static void Initialize<T>(T message) where T : EventMessage
+        {
+            var reader = GetResourceName(message.Id);
+            if (reader != null)
+                new XhtmlEventMessageParser(reader).Read(message);
+        }
+    }
+
+    public class XhtmlEventMessageParser
+    {
+        const string XHTML_NS = "http://www.w3.org/1999/xhtml";
+        readonly Dictionary<string, Action<XmlReader, EventMessage>> _elementParsers = new Dictionary<string, Action<XmlReader, EventMessage>>();
+        readonly XmlReader _reader;
+
+        public XhtmlEventMessageParser(XmlReader reader)
+        {
+            _reader = reader;
+            _elementParsers = new Dictionary<string, Action<XmlReader, EventMessage>>
+            {
+                { "title", ParseTitle }, 
+                { "dl", ParseDefinitionList }
+            };
+        }
+
+        public void Read(EventMessage message)
+        {
+            while (_reader.Read())
+            {
+                if (_reader.NodeType == XmlNodeType.Element && _reader.NamespaceURI == XHTML_NS)
+                    if (_elementParsers.ContainsKey(_reader.Name))
+                        _elementParsers[_reader.Name](_reader, message);
+            }
+        }
+
+        void ParseData(XmlReader reader, EventMessage message, string dataName)
+        {
+            message.Data[dataName] = reader.ReadSubtree().ReadAsFormatString();
+        }
+
+        void ParseDefinitionList(XmlReader reader, EventMessage message)
+        {
+            if (reader.GetAttribute("class") != "description") return;
+
+            var sub = reader.ReadSubtree();
+            while (reader.ReadToFollowing("dt", XHTML_NS))
+            {
+                string dt = reader.ReadElementContentAsString();
+                if (!reader.IsStartElement("dd", XHTML_NS)) continue;
+                if (dt == "Format")
+                    ParseFormat(reader, message);
+                else
+                    ParseData(reader, message, dt);
+            }
+        }
+
+        void ParseFormat(XmlReader reader, EventMessage message)
+        {
+            message.Format = reader.ReadSubtree().ReadAsFormatString();
+        }
+
+        void ParseTitle(XmlReader reader, EventMessage message)
+        {
+            message.Title = reader.ReadElementContentAsString();
+        }
+    }
+
+    public class OpenRastaMessageSource : EventSource
+    {
+        public OpenRastaMessageSource()
+            : base(null, "openrasta")
+        {
+            Binding = new EventSource(this, "binding");
+        }
+
+        protected EventSource Binding { get; private set; }
+    }
+
+    public static class XmlReaderExtensions
+    {
+        const string XHTML_NS = "http://www.w3.org/1999/xhtml";
+
+        public static string ReadAsFormatString(this XmlReader reader)
+        {
+            var sb = new StringBuilder();
+            while (reader.Read())
+            {
+                if (reader.NodeType == XmlNodeType.Text)
+                    sb.Append(reader.ReadContentAsString());
+                else if (reader.NodeType == XmlNodeType.Element
+                         && reader.Name == "span"
+                         && reader.GetAttribute("class") == "var")
+                    sb.Append("{{").Append(reader.ReadElementContentAsString()).Append("}}");
+                else if (reader.IsStartElement("p", XHTML_NS))
+                    sb.Append(reader.ReadAsFormatString()).Append("\r\n");
+            }
+
+            return sb.ToString();
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventPublisher.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventPublisher.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Diagnostics/Eventing/IEventPublisher.cs	(revision 431)
@@ -0,0 +1,111 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using OpenRasta.DI;
+using OpenRasta.TypeSystem.ReflectionBased;
+
+namespace OpenRasta.Diagnostics.Eventing
+{
+    public interface IEventPublisher
+    {
+        void Publish<T>(T message) where T : IEventMessage;
+    }
+    public interface IEventCollector<T> where T:IEventMessage
+    {
+        void Receive(T message);
+    }
+    public class EventPublisher : IEventPublisher
+    {
+        readonly IDependencyResolver _resolver;
+        static Dictionary<Type, IEnumerable<Action<IDependencyResolver, IEventMessage>>> _messageHandlers = new Dictionary<Type, IEnumerable<Action<IDependencyResolver, IEventMessage>>>();
+
+
+        public EventPublisher(IDependencyResolver resolver)
+        {
+            _resolver = resolver;
+        }
+        
+        static IEnumerable<Action<IDependencyResolver, IEventMessage>> GetHandlers<T>()
+        {
+            IEnumerable<Action<IDependencyResolver, IEventMessage>> actions;
+            if (_messageHandlers.TryGetValue(typeof(T), out actions))
+                return actions;
+
+
+
+            // first, get the inheritance chain for interface and message
+            var types = from messageType in typeof(T).GetInheritanceChain()
+                        where typeof(IEventMessage).IsAssignableFrom(messageType)
+                        let collectorInterface = typeof(IEventCollector<>).MakeGenericType(messageType)
+                        let method = collectorInterface.GetMethod("Receive")
+                        select new { messageType, collectorInterface, method };
+
+            var actionList = new List<Action<IDependencyResolver, IEventMessage>>();
+            
+            foreach(var x in types)
+            {
+                actionList.Add((resolver, m) =>
+                {
+                    var collectorType = x.collectorInterface;
+                    var method = x.method;
+                    foreach (var type in resolver.ResolveAll(collectorType))
+                        method.Invoke(type, new object[] { m });
+                });
+            }
+            return _messageHandlers[typeof(T)] = actionList;
+        }
+        public void Publish<T>(T message) where T : IEventMessage
+        {
+            foreach (var handler in GetHandlers<T>())
+                handler(_resolver, message);
+        }
+    }
+
+    public class EventCollectorFault : Fault
+    {
+        public object Collector { get; set; }
+
+        public EventCollectorFault(object handler, Exception exception)
+            : base(exception)
+        {
+            Collector = handler;
+        }
+    }
+
+    public class Fault : IEventMessage
+    {
+        protected Fault(Exception exception)
+        {
+            this.Exception = exception;
+        }
+
+        protected Exception Exception { get; set; }
+
+        public Uri Id
+        {
+            get; set;
+        }
+
+        public MessageType Type
+        {
+            get; set;
+        }
+
+        public string Title
+        {
+            get; set;
+        }
+
+        public string Format
+        {
+            get; set;
+        }
+
+        public IDictionary<string,object> Data
+        {
+            get { return null; }
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Diagnostics/TraceSourceLogger.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/TraceSourceLogger.cs	(revision 362)
+++ /trunk/src/core/OpenRasta/Diagnostics/TraceSourceLogger.cs	(revision 431)
@@ -14,4 +14,5 @@
 namespace OpenRasta.Diagnostics
 {
+
     public class TraceSourceLogger<T> : TraceSourceLogger, ILogger<T> where T : ILogSource
     {
Index: /trunk/src/core/OpenRasta/Diagnostics/EventLogger.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/EventLogger.cs	(revision 431)
+++ /trunk/src/core/OpenRasta/Diagnostics/EventLogger.cs	(revision 431)
@@ -0,0 +1,164 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using OpenRasta.Diagnostics.Eventing;
+
+namespace OpenRasta.Diagnostics
+{
+    public class EventLogger : ILogger
+    {
+        IEventPublisher _publisher;
+        public IDisposable Operation(object source, string name)
+        {
+            _publisher.Publish(new OperationStartMessage(source, name));
+            return new StopEvent
+            {
+                onDispose = () => _publisher.Publish(new OperationStopMessage(source, name))
+            };
+        }
+
+        public void WriteDebug(string message, params object[] format)
+        {
+            if (message == null) throw new ArgumentNullException("message");
+            _publisher.Publish(new EventMessage(EventSource.OpenRasta, "debug")
+            {
+                Title = "Debug",
+                Type = MessageType.Debug,
+                Format = message.With(format)
+            });
+        }
+
+        public void WriteWarning(string message, params object[] format)
+        {
+            _publisher.Publish(new EventMessage(EventSource.OpenRasta, "warning")
+            {
+                Title = "Warning",
+                Type = MessageType.Warning,
+                Format = message.With(format)
+            });
+        }
+
+        public void WriteError(string message, params object[] format)
+        {
+            _publisher.Publish(new EventMessage(EventSource.OpenRasta, "error")
+            {
+                Title = "Error",
+                Type = MessageType.Warning,
+                Format = message.With(format)
+            });
+        }
+
+        public void WriteInfo(string message, params object[] format)
+        {
+            _publisher.Publish(new EventMessage(EventSource.OpenRasta, "info")
+            {
+                Title = "Info",
+                Type = MessageType.Information,
+                Format = message.With(format)
+            });
+        }
+
+        public void WriteException(Exception e)
+        {
+            _publisher.Publish(new UnhandledExceptionMessage(e));
+        }
+        class StopEvent : IDisposable
+        {
+            public Action onDispose;
+            public void Dispose()
+            {
+                onDispose();
+            }
+        }
+    }
+    public class UnhandledExceptionMessage : EventMessage
+    {
+        public Exception Exception { get; set; }
+
+        public UnhandledExceptionMessage(Exception e) : base(EventSource.OpenRasta, "fault")
+        {
+            Exception = e;
+            Title = e.Message;
+            Format = e.ToString();
+        }
+    }
+    public class OperationStopMessage : EventMessage
+    {
+        public OperationStopMessage(object source, string title) : base(EventSource.OpenRasta, "stop")
+        {
+            if (source == null) throw new ArgumentNullException("source");
+
+            Type = MessageType.Stop;
+            Title = title;
+            Format = "Stop ({0})".With(source.GetType().Name);
+            
+        }
+    }
+
+    public class OperationStartMessage : EventMessage
+    {
+        public OperationStartMessage(object source, string title) : base(EventSource.OpenRasta, "start")
+        {
+            if (source == null) throw new ArgumentNullException("source");
+
+            Type = MessageType.Start;
+            Title = title;
+            //Format = "Start ({0})".With(source.GetType().Name);
+        }
+    }
+    public class TraceSourceEventCollector : IEventCollector<IEventMessage>
+    {
+        public void Receive(IEventMessage message)
+        {
+            var source = GetTraceSourceFor(message);
+
+        }
+
+        static Dictionary<string, TraceSource> _sources = new Dictionary<string, TraceSource>();
+        static TraceSource GetTraceSourceFor(IEventMessage message)
+        {
+            // http://errors.openrasta.com/openrasta/binding/error  -> openrasta.binding
+            var sourceName = string.Join(".", message.Id.Segments.Take(message.Id.Segments.Length - 1).ToArray());
+
+            TraceSource traceSource;
+            if (_sources.TryGetValue(sourceName, out traceSource))
+                return traceSource;
+
+            return _sources[sourceName] = traceSource = CreateTraceSource(sourceName);
+        }
+
+        static TraceSource CreateTraceSource(string traceSourceName)
+        {
+            var source = new TraceSource(traceSourceName, SourceLevels.All);
+
+            source.Listeners.Remove("Default");
+
+            var listener = new DebuggerLoggingTraceListener
+            {
+                Name = "OpenRasta",
+                TraceOutputOptions =
+                    TraceOptions.DateTime | TraceOptions.ThreadId |
+                    TraceOptions.LogicalOperationStack
+            };
+            
+            source.Listeners.Add(listener);
+
+            return source;
+        }
+    }
+    public class CorrelationManagerEventCollector : IEventCollector<OperationStartMessage>,
+        IEventCollector<OperationStopMessage>
+    {
+        public void Receive(OperationStartMessage message)
+        {
+            Trace.CorrelationManager.StartLogicalOperation();
+        }
+
+        public void Receive(OperationStopMessage message)
+        {
+            Trace.CorrelationManager.StopLogicalOperation();
+        }
+    }
+}
Index: /trunk/src/core/OpenRasta/Diagnostics/ILogger.cs
===================================================================
--- /trunk/src/core/OpenRasta/Diagnostics/ILogger.cs	(revision 426)
+++ /trunk/src/core/OpenRasta/Diagnostics/ILogger.cs	(revision 431)
@@ -17,9 +17,6 @@
     /// Provides the logging interfaces used by OpenRasta to communicate the state of various diagnostics information to the rest of the system.
     /// </summary>
-    /// <remarks>
-    /// Should you wish to collect some of those events your self, </remarks>
     public interface ILogger
     {
-
         IDisposable Operation(object source, string name);
 
Index: /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRasta.Hosting.AspNet.csproj
===================================================================
--- /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRasta.Hosting.AspNet.csproj	(revision 356)
+++ /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRasta.Hosting.AspNet.csproj	(revision 431)
@@ -74,4 +74,7 @@
     <None Include="dependencies.targets" />
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Pipeline\" />
+  </ItemGroup>
   <Import Project="dependencies.targets" />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRastaModule.cs
===================================================================
--- /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRastaModule.cs	(revision 363)
+++ /trunk/src/aspnet/OpenRasta.Hosting.AspNet/OpenRastaModule.cs	(revision 431)
@@ -145,5 +145,5 @@
                 Host.RaiseIncomingRequestReceived(context);
 
-                if (context.PipelineData.ResourceKey != null)
+                if (context.PipelineData.ResourceKey != null || context.OperationResult != null)
                 {
                     HttpContext.Current.Items[ORIGINAL_PATH_KEY] = HttpContext.Current.Request.Path;
Index: /trunk/src/aspnet/aspnet.4.5.resharper
===================================================================
--- /trunk/src/aspnet/aspnet.4.5.resharper	(revision 356)
+++ /trunk/src/aspnet/aspnet.4.5.resharper	(revision 431)
@@ -1,5 +1,6 @@
 <Configuration>
   <CodeStyleSettings>
-    <ExternalPath>C:\src\caff\openrasta\trunk\src\aspnet\aspnet.4.5.resharper</ExternalPath>
+    <ExternalPath IsNull="False">
+    </ExternalPath>
     <Sharing>SOLUTION</Sharing>
     <AgentSmithCSharpStyleSettings version="1">
@@ -8,20 +9,32 @@
           <Dictionaries>
             <CustomDictionary>
-              <Name>en-US</Name>
+              <Name>en-GB</Name>
               <CaseSensitive>false</CaseSensitive>
-              <UserWords>Aspx
-Lambla
+              <UserWords>Codec
 Rasta
-Init
-microsoft
-iis</UserWords>
+Multipart
+Locator
+Codecs
+Http
+seekable
+crlf
+Html
+openrasta
+args
+localhost
+Accessor</UserWords>
+            </CustomDictionary>
+            <CustomDictionary>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords />
             </CustomDictionary>
           </Dictionaries>
         </CustomDictionaries>
-        <StringsDictionary>en-US</StringsDictionary>
-        <IdentifierDictionary>en-US</IdentifierDictionary>
-        <LastSelectedCustomDictionary>en-US</LastSelectedCustomDictionary>
+        <StringsDictionary>en-GB</StringsDictionary>
+        <IdentifierDictionary>en-GB</IdentifierDictionary>
+        <LastSelectedCustomDictionary>en-GB</LastSelectedCustomDictionary>
         <CommentsSettings>
-          <DictionaryName>en-US</DictionaryName>
+          <DictionaryName>en-GB</DictionaryName>
           <CommentMatch>
             <Match>
@@ -34,5 +47,5 @@
           </CommentMatch>
           <CommentNotMatch />
-          <SuppressIfBaseHasComment>false</SuppressIfBaseHasComment>
+          <SuppressIfBaseHasComment>true</SuppressIfBaseHasComment>
           <MaxLineLength>80</MaxLineLength>
         </CommentsSettings>
@@ -40,5 +53,5 @@
           <Rules>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -68,4 +81,42 @@
               <NotMatches />
               <Description>Classes, Enumerations, Enumeration values should be named in Pascal</Description>
+              <MustHavePrefixes />
+              <MustNotHavePrefixes>
+                <string>m_</string>
+              </MustNotHavePrefixes>
+              <Rule>Pascal</Rule>
+              <MustHaveSuffixes />
+              <MustNotHaveSuffixes />
+            </NamingConventionRule>
+            <NamingConventionRule>
+              <IsDisabled>false</IsDisabled>
+              <Matches>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Property</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Method</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Event</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+              </Matches>
+              <NotMatches />
+              <Description>Non private properties, methods, events should be in pascal.</Description>
               <MustHavePrefixes />
               <MustNotHavePrefixes>
@@ -81,43 +132,4 @@
               <Matches>
                 <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Property</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Method</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Event</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-              </Matches>
-              <NotMatches />
-              <Description>Non private properties, methods, events should be in pascal.</Description>
-              <MustHavePrefixes />
-              <MustNotHavePrefixes>
-                <string>_</string>
-                <string>m_</string>
-              </MustNotHavePrefixes>
-              <Rule>Pascal</Rule>
-              <MustHaveSuffixes />
-              <MustNotHaveSuffixes />
-            </NamingConventionRule>
-            <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
-              <Matches>
-                <Match>
                   <AccessLevel>Private</AccessLevel>
                   <Declaration>Property</Declaration>
@@ -156,5 +168,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -180,5 +192,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -201,5 +213,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -222,5 +234,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -243,5 +255,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>true</IsDisabled>
+              <IsDisabled>false</IsDisabled>
               <Matches>
                 <Match>
@@ -289,5 +301,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -739,4 +751,5 @@
           </Match>
         </IdentifiersToSpellCheck>
+        <IdentifiersNotToSpellCheck />
         <PatternsToIgnore>
           <string>(?#email)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</string>
@@ -747,9 +760,12 @@
     <CSharp>
       <FormatSettings>
+        <ANONYMOUS_METHOD_DECLARATION_BRACES>NEXT_LINE</ANONYMOUS_METHOD_DECLARATION_BRACES>
         <BLANK_LINES_INSIDE_REGION>0</BLANK_LINES_INSIDE_REGION>
+        <CASE_BLOCK_BRACES>NEXT_LINE</CASE_BLOCK_BRACES>
         <EXPLICIT_PRIVATE_MODIFIER>False</EXPLICIT_PRIVATE_MODIFIER>
         <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
         <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
         <INDENT_SIZE>4</INDENT_SIZE>
+        <INITIALIZER_BRACES>NEXT_LINE</INITIALIZER_BRACES>
         <MODIFIERS_ORDER IsNull="False">
           <Item>public</Item>
@@ -778,5 +794,9 @@
         <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
       </FormatSettings>
-      <UsingsSettings />
+      <UsingsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </UsingsSettings>
       <Naming2>
         <ExceptionName IsNull="False">
@@ -1042,5 +1062,9 @@
         <INDENT_SIZE>4</INDENT_SIZE>
       </FormatSettings>
-      <ImportsSettings />
+      <ImportsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </ImportsSettings>
       <Naming2 />
     </VB>
@@ -1065,5 +1089,5 @@
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly" />
-      <Abbreviation Text="ID" />
+      <Abbreviation Text="OK" />
     </Naming2>
   </CodeStyleSettings>
Index: /trunk/src/aspnet/OpenRasta.Codecs.WebForms/Configuration/HasTheUri.cs
===================================================================
--- /trunk/src/aspnet/OpenRasta.Codecs.WebForms/Configuration/HasTheUri.cs	(revision 356)
+++ /trunk/src/aspnet/OpenRasta.Codecs.WebForms/Configuration/HasTheUri.cs	(revision 431)
@@ -28,5 +28,5 @@
         public HasTheUri ForThePage(string pageVPath)
         {
-            _model.ResourceKey = BuildManager.GetCompiledType(pageVPath);
+            _model.ResourceKey = pageVPath;
             return this;
         }
Index: /trunk/src/aspnet/OpenRasta.Codecs.WebForms/WebFormsDefaultHandler.cs
===================================================================
--- /trunk/src/aspnet/OpenRasta.Codecs.WebForms/WebFormsDefaultHandler.cs	(revision 356)
+++ /trunk/src/aspnet/OpenRasta.Codecs.WebForms/WebFormsDefaultHandler.cs	(revision 431)
@@ -9,4 +9,5 @@
 #endregion
 
+using System.Web.Compilation;
 using System.Web.UI;
 using OpenRasta.DI;
@@ -19,4 +20,5 @@
     {
         readonly ICommunicationContext _context;
+        readonly ITypeSystem _typeSystem;
         readonly IType _pageType;
         readonly IDependencyResolver _resolver;
@@ -25,4 +27,5 @@
         {
             _context = context;
+            _typeSystem = typeSystem;
             _resolver = resolver;
             _pageType = typeSystem.FromClr<Page>();
@@ -32,4 +35,15 @@
         {
             var resourceKey = _context.PipelineData.ResourceKey as IType;
+
+            if (resourceKey == null && _context.PipelineData.ResourceKey is string)
+            {
+                try
+                {
+                    resourceKey = _typeSystem.FromClr( BuildManager.GetCompiledType((string)_context.PipelineData.ResourceKey));
+                }
+                catch
+                {
+                }
+            }
 
             if (resourceKey != null && resourceKey.CompareTo(_pageType) == 0)
Index: /trunk/src/ninject/OpenRasta.DI.Ninject/NinjectDependencyResolver.cs
===================================================================
--- /trunk/src/ninject/OpenRasta.DI.Ninject/NinjectDependencyResolver.cs	(revision 365)
+++ /trunk/src/ninject/OpenRasta.DI.Ninject/NinjectDependencyResolver.cs	(revision 431)
@@ -11,4 +11,5 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
@@ -193,8 +194,8 @@
         /// <typeparam name="TService">The type of the service.</typeparam>
         /// <returns></returns>
-        protected override IEnumerable<TService> ResolveAllCore<TService>()
-        {
-            Type serviceType = typeof (TService);
-            return _kernel.GetAll<TService>();
+        protected override IEnumerable ResolveAllCore(Type serviceType)
+        {
+
+            return _kernel.GetAll(serviceType);
         }
 
Index: /trunk/src/resharper-config.xml
===================================================================
--- /trunk/src/resharper-config.xml	(revision 314)
+++ /trunk/src/resharper-config.xml	(revision 431)
@@ -1,3 +1,770 @@
 <CodeStyleSettings>
+  <AgentSmithCSharpStyleSettings version="1">
+    <CodeStyleSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+      <CustomDictionaries>
+        <Dictionaries>
+          <CustomDictionary>
+            <Name>en-GB</Name>
+            <CaseSensitive>false</CaseSensitive>
+            <UserWords>Codec
+Rasta
+Multipart
+Locator
+Codecs
+Http
+seekable
+crlf
+Html
+openrasta
+args
+localhost
+Accessor
+Json
+Queryable
+Linq
+tokenizers
+Tokenizer
+surrogated
+Templated
+Markup</UserWords>
+          </CustomDictionary>
+          <CustomDictionary>
+            <Name>en-GB</Name>
+            <CaseSensitive>false</CaseSensitive>
+            <UserWords />
+          </CustomDictionary>
+          <CustomDictionary>
+            <Name>en-US</Name>
+            <CaseSensitive>false</CaseSensitive>
+            <UserWords />
+          </CustomDictionary>
+        </Dictionaries>
+      </CustomDictionaries>
+      <StringsDictionary>en-GB</StringsDictionary>
+      <IdentifierDictionary>en-GB</IdentifierDictionary>
+      <LastSelectedCustomDictionary>en-GB</LastSelectedCustomDictionary>
+      <CommentsSettings>
+        <DictionaryName>en-GB</DictionaryName>
+        <CommentMatch>
+          <Match>
+            <AccessLevel>Public Protected ProtectedInternal</AccessLevel>
+            <Declaration>Any</Declaration>
+            <IsReadOnly>Maybe</IsReadOnly>
+            <IsStatic>Maybe</IsStatic>
+            <ParamDirection>Any</ParamDirection>
+          </Match>
+        </CommentMatch>
+        <CommentNotMatch />
+        <SuppressIfBaseHasComment>true</SuppressIfBaseHasComment>
+        <MaxLineLength>80</MaxLineLength>
+      </CommentsSettings>
+      <NamingConventionSettings>
+        <Rules>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Enum</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>EnumerationMember</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches />
+            <Description>Classes, Enumerations, Enumeration values should be named in Pascal</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Pascal</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                <Declaration>Property</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                <Declaration>Method</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                <Declaration>Event</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches />
+            <Description>Non private properties, methods, events should be in pascal.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>_</string>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Pascal</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>true</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Private</AccessLevel>
+                <Declaration>Property</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Private</AccessLevel>
+                <Declaration>Method</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Private</AccessLevel>
+                <Declaration>Event</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches />
+            <Description>Private properties, methods, events should be in camel.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>_</string>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Camel</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Field</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches />
+            <Description>Fields should be underscore camel.</Description>
+            <MustHavePrefixes>
+              <string>_</string>
+            </MustHavePrefixes>
+            <MustNotHavePrefixes>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Camel</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Variable</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Variable should be declared in camel.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>_</string>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Camel</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Parameter</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Function parameters should be in camel.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>_</string>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Camel</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Namespace</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Namespaces should be in Pascal.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>_</string>
+              <string>m_</string>
+            </MustNotHavePrefixes>
+            <Rule>Pascal</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Constant</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Constants should be in capital.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>UpperCase</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Any</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Constant</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </NotMatches>
+            <Description>Acronyms should not have more than 2 characters.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>MatchesRegex</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+            <Regex>^(?&gt;(XML|SQL|[A-Z]{0,2})[A-Z]?([^A-Z]|$)|[^A-Z]+)*$</Regex>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>true</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Any</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Constant</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Field</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Private</AccessLevel>
+                <Declaration>Method</Declaration>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>None</AccessLevel>
+                <Declaration>Namespace</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </NotMatches>
+            <Description>Names should not have underscore character</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>NotMatchesRegex</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+            <Regex>(?&lt;remove&gt;_)</Regex>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>true</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <MarkedWithAttribute>NUnit.Framework.TestFixtureAttribute</MarkedWithAttribute>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>TestFixtures should end with Test.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>Test</string>
+            </MustNotHavePrefixes>
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Test</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>true</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Method</Declaration>
+                <MarkedWithAttribute>NUnit.Framework.TestAttribute</MarkedWithAttribute>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Test methods should start with Test.</Description>
+            <MustHavePrefixes>
+              <string>Test</string>
+            </MustHavePrefixes>
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes>
+              <string>Test</string>
+            </MustNotHaveSuffixes>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Enum</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Enumerations should not end with Enum.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes>
+              <string>Enum</string>
+            </MustNotHaveSuffixes>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>EnumerationMember</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Do not name enumerations reserved.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>NotMatchesRegex</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+            <Regex>(?&lt;remove&gt;(reserved|Reserved))</Regex>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Event</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Event should not have Before or After prefix.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes>
+              <string>Before</string>
+              <string>After</string>
+            </MustNotHavePrefixes>
+            <Rule>None</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Enum</Declaration>
+                <MarkedWithAttribute>System.FlagsAttribute</MarkedWithAttribute>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Flags enums should have plural names</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>s</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>true</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Enum</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Enum</Declaration>
+                <MarkedWithAttribute>System.FlagsAttribute</MarkedWithAttribute>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </NotMatches>
+            <Description>Enums that are not flags should not have plural names</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes>
+              <string>s</string>
+            </MustNotHaveSuffixes>
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Attribute</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Attribute should end with Attribute.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Attribute</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.EventArgs</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>EventArgs should end with EventArgs.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>EventArgs</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Exception</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Exceptions should end with Exception.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Exception</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Stack</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Generic.Stack</InheritedFrom>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches />
+            <Description>Stack should end with Collection or Stack.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Collection</string>
+              <string>Stack</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.ICollection</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.IEnumerable</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Generic.ICollection</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <NotMatches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Stack</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Queue</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Generic.Stack</InheritedFrom>
+                <MarkedWithAttribute />
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </NotMatches>
+            <Description>Collections should end with Collection.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Collection</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.IDictionary</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Generic.IDictionary</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Dictionary should end with Dictionary.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Dictionary</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Class</Declaration>
+                <InheritedFrom>System.Collections.Queue</InheritedFrom>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Queue should end with Collection or Queue.</Description>
+            <MustHavePrefixes />
+            <MustNotHavePrefixes />
+            <Rule>None</Rule>
+            <MustHaveSuffixes>
+              <string>Collection</string>
+              <string>Queue</string>
+            </MustHaveSuffixes>
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+          <NamingConventionRule>
+            <IsDisabled>false</IsDisabled>
+            <Matches>
+              <Match>
+                <AccessLevel>Any</AccessLevel>
+                <Declaration>Interface</Declaration>
+                <IsReadOnly>Maybe</IsReadOnly>
+                <IsStatic>Maybe</IsStatic>
+                <ParamDirection>Any</ParamDirection>
+              </Match>
+            </Matches>
+            <Description>Interfaces should be in Pascal and start with I.</Description>
+            <MustHavePrefixes>
+              <string>I</string>
+            </MustHavePrefixes>
+            <MustNotHavePrefixes />
+            <Rule>Pascal</Rule>
+            <MustHaveSuffixes />
+            <MustNotHaveSuffixes />
+          </NamingConventionRule>
+        </Rules>
+        <Exclusions />
+      </NamingConventionSettings>
+      <IdentifiersToSpellCheck>
+        <Match>
+          <AccessLevel>Public Protected ProtectedInternal</AccessLevel>
+          <Declaration>Any</Declaration>
+          <IsReadOnly>Maybe</IsReadOnly>
+          <IsStatic>Maybe</IsStatic>
+          <ParamDirection>Any</ParamDirection>
+        </Match>
+      </IdentifiersToSpellCheck>
+      <IdentifiersNotToSpellCheck />
+      <PatternsToIgnore>
+        <string>(?#email)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</string>
+        <string>(?#url)http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?</string>
+      </PatternsToIgnore>
+    </CodeStyleSettings>
+  </AgentSmithCSharpStyleSettings>
   <CSharp>
     <FormatSettings>
@@ -36,5 +803,9 @@
       <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
     </FormatSettings>
-    <UsingsSettings />
+    <UsingsSettings>
+      <KeepImports IsNull="False">
+        <Item>System</Item>
+      </KeepImports>
+    </UsingsSettings>
     <Naming2>
       <ExceptionName IsNull="False">
@@ -300,5 +1071,9 @@
       <INDENT_SIZE>4</INDENT_SIZE>
     </FormatSettings>
-    <ImportsSettings />
+    <ImportsSettings>
+      <KeepImports IsNull="False">
+        <Item>System</Item>
+      </KeepImports>
+    </ImportsSettings>
     <Naming2 />
   </VB>
@@ -322,5 +1097,7 @@
     <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
     <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
-    <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly" />
+    <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly">
+      <ExtraRule Prefix="_" Suffix="" Style="aaBb" />
+    </PredefinedRule>
     <Abbreviation Text="OK" />
   </Naming2>
Index: /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/Program.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/Program.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/Program.cs	(revision 431)
@@ -10,5 +10,5 @@
         static void Main(string[] args)
         {
-            //Debugger.Launch();
+            Debugger.Launch();
             Server = Iis7Starter.Start(args);
             Server.Start();
Index: /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/OpenBastard.Hosting.Iis7.WorkerProcess-32.csproj
===================================================================
--- /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/OpenBastard.Hosting.Iis7.WorkerProcess-32.csproj	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-32/OpenBastard.Hosting.Iis7.WorkerProcess-32.csproj	(revision 431)
@@ -49,4 +49,5 @@
     </ProjectReference>
   </ItemGroup>
+  <Import Project="..\..\..\Build\defaults.targets"/>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: /trunk/src/openbastard/OpenBastard/Handlers/UploadedFileHandler.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/Handlers/UploadedFileHandler.cs	(revision 367)
+++ /trunk/src/openbastard/OpenBastard/Handlers/UploadedFileHandler.cs	(revision 431)
@@ -19,5 +19,4 @@
             var streamToSend = _files[id];
             streamToSend.OpenStream().Position = 0;
-
             
             return new OperationResult.OK(streamToSend);
@@ -43,5 +42,5 @@
         }
 
-        [HttpOperation(ForUriName = "iFile")]
+        [HttpOperation(ForUriName = "IFile")]
         public OperationResult Post(IFile file)
         {
@@ -71,5 +70,5 @@
             return new OperationResult.SeeOther
             {
-                RedirectLocation = typeof(UploadedFile).CreateUri(new { id = ReceiveStream(MediaType.ApplicationOctetStream,fileStream) })
+                RedirectLocation = typeof(UploadedFile).CreateUri(new { id = ReceiveStream(MediaType.ApplicationOctetStream, fileStream) })
             };
         }
@@ -80,5 +79,5 @@
             stream.CopyTo(memoryStream);
 
-            var file = new InMemoryFile(memoryStream) {ContentType = streamType};
+            var file = new InMemoryFile(memoryStream) { ContentType = streamType };
             _files.Add(file);
             return _files.IndexOf(file);
Index: /trunk/src/openbastard/OpenBastard/Handlers/UserHandler.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/Handlers/UserHandler.cs	(revision 431)
+++ /trunk/src/openbastard/OpenBastard/Handlers/UserHandler.cs	(revision 431)
@@ -0,0 +1,14 @@
+using OpenRasta.Security;
+using OpenRasta.Web;
+
+namespace OpenBastard.Handlers
+{
+    public class UserHandler
+    {
+        [RequiresAuthentication]
+        public OperationResult Delete(int id)
+        {
+            return new OperationResult.OK();
+        }
+    }
+}
Index: /trunk/src/openbastard/OpenBastard/Handlers/UserListHandler.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/Handlers/UserListHandler.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard/Handlers/UserListHandler.cs	(revision 431)
@@ -18,8 +18,8 @@
             AddUser(userToAdd);
             return new OperationResult.Created
-                {
-                    RedirectLocation = userToAdd.CreateUri(), 
-                    ResponseResource = userToAdd
-                };
+            {
+                RedirectLocation = userToAdd.CreateUri(), 
+                ResponseResource = userToAdd
+            };
         }
 
@@ -28,7 +28,7 @@
             _userRepository = users;
             return new OperationResult.OK
-                {
-                    ResponseResource = users
-                };
+            {
+                ResponseResource = users
+            };
         }
 
Index: /trunk/src/openbastard/OpenBastard/OpenBastard.csproj
===================================================================
--- /trunk/src/openbastard/OpenBastard/OpenBastard.csproj	(revision 356)
+++ /trunk/src/openbastard/OpenBastard/OpenBastard.csproj	(revision 431)
@@ -41,4 +41,5 @@
     <Compile Include="Configurator.cs" />
     <Compile Include="Handlers\UploadedFileHandler.cs" />
+    <Compile Include="Handlers\UserHandler.cs" />
     <Compile Include="Handlers\UserListHandler.cs" />
     <Compile Include="Resources\UploadedFile.cs" />
@@ -46,4 +47,6 @@
     <Compile Include="Handlers\HomeHandler.cs" />
     <Compile Include="Resources\User.cs" />
+    <Compile Include="StaticAuthenticationProvider.cs" />
+    <Compile Include="Uris.cs" />
   </ItemGroup>
   <ItemGroup>
Index: /trunk/src/openbastard/OpenBastard/Configurator.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/Configurator.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard/Configurator.cs	(revision 431)
@@ -1,6 +1,9 @@
-﻿using System.Collections.Generic;
+﻿using System;
+using System.Collections.Generic;
 using OpenBastard.Handlers;
 using OpenBastard.Resources;
 using OpenRasta.Configuration;
+using OpenRasta.DI;
+using OpenRasta.Security;
 
 namespace OpenBastard
@@ -12,4 +15,5 @@
             using (OpenRastaConfiguration.Manual)
             {
+                ResourceSpace.Uses.CustomDependency<IAuthenticationProvider, StaticAuthenticationProvider>(DependencyLifetime.Singleton);
                 ResourceSpace.Has.ResourcesOfType<Home>()
                     .AtUri("/")
@@ -20,5 +24,5 @@
                 ResourceSpace.Has.ResourcesOfType<UploadedFile>()
                     .AtUri(Uris.FILES)
-                    .And.AtUri(Uris.FILES_IFILE).Named("iFile")
+                    .And.AtUri(Uris.FILES_IFILE).Named("IFile")
                     .And.AtUri(Uris.FILES_COMPLEX_TYPE).Named("complexType")
                     .And
@@ -35,18 +39,8 @@
                 ResourceSpace.Has.ResourcesOfType<User>()
                     .AtUri(Uris.USER)
-                    .HandledBy<UserListHandler>()
+                    .HandledBy<UserHandler>()
                     .AsXmlSerializer();
             }
         }
     }
-
-    public static class Uris
-    {
-        public const string FILES = "/files";
-        public const string FILES_COMPLEX_TYPE = "/files/complexType";
-        public const string FILES_IFILE = "/files/iFile";
-        public const string HOME = "/";
-        public const string USERS = "/users";
-        public static string USER = "/users/{id}";
-    }
 }
Index: /trunk/src/openbastard/OpenBastard/StaticAuthenticationProvider.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/StaticAuthenticationProvider.cs	(revision 431)
+++ /trunk/src/openbastard/OpenBastard/StaticAuthenticationProvider.cs	(revision 431)
@@ -0,0 +1,12 @@
+using OpenRasta.Security;
+
+namespace OpenBastard
+{
+    public class StaticAuthenticationProvider : IAuthenticationProvider
+    {
+        public Credentials GetByUsername(string p)
+        {
+            return new Credentials() { Username = "username", Password = "password" };
+        }
+    }
+}
Index: /trunk/src/openbastard/OpenBastard/Uris.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard/Uris.cs	(revision 431)
+++ /trunk/src/openbastard/OpenBastard/Uris.cs	(revision 431)
@@ -0,0 +1,18 @@
+using System.Diagnostics.CodeAnalysis;
+
+namespace OpenBastard
+{
+    public static class Uris
+    {
+        public const string FILES = "/files";
+        public const string FILES_COMPLEX_TYPE = "/files/complexType";
+        public const string FILES_IFILE = "/files/iFile";
+        public const string HOME = "/";
+        public const string USERS = "/users";
+        public const string USER = "/users/{id}";
+        public static string User(int id)
+        {
+            return "/users/" + id;
+        }
+    }
+}
Index: /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-64/OpenBastard.Hosting.Iis7.WorkerProcess-64.csproj
===================================================================
--- /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-64/OpenBastard.Hosting.Iis7.WorkerProcess-64.csproj	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.Hosting.Iis7.WorkerProcess-64/OpenBastard.Hosting.Iis7.WorkerProcess-64.csproj	(revision 431)
@@ -49,9 +49,9 @@
     </ProjectReference>
   </ItemGroup>
+  <Import Project="..\..\..\Build\defaults.targets"/>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
+  
   <Target Name="AfterBuild">
   </Target>
Index: /trunk/src/openbastard/OpenBastard.Hosting.Iis7/OpenBastard.Hosting.Iis7.csproj
===================================================================
--- /trunk/src/openbastard/OpenBastard.Hosting.Iis7/OpenBastard.Hosting.Iis7.csproj	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.Hosting.Iis7/OpenBastard.Hosting.Iis7.csproj	(revision 431)
@@ -20,5 +20,4 @@
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -28,5 +27,4 @@
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -56,4 +54,5 @@
     </EmbeddedResource>
   </ItemGroup>
+  <Import Project="..\..\..\Build\defaults.targets"/>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.Designer.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.Designer.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.Designer.cs	(revision 431)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:2.0.50727.4918
+//     Runtime Version:2.0.50727.4927
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -98,4 +98,29 @@
         ///
         ///  &lt;system.web&gt;
+        ///    &lt;trust level=&quot;Medium&quot;/&gt;
+        ///    &lt;!-- 
+        ///            Set compilation debug=&quot;true&quot; to insert debugging 
+        ///            symbols into the compiled page. Because this 
+        ///            affects performance, set this value to true only 
+        ///            during development.
+        ///        --&gt;
+        ///    &lt;compilation debug=&quot;true&quot; numRecompilesBeforeAppRestart=&quot;1&quot; &gt;
+        ///      &lt;assemblies&gt;
+        ///        &lt;add assemb [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string web_mediumtrust {
+            get {
+                return ResourceManager.GetString("web_mediumtrust", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+        ///&lt;configuration&gt;
+        ///  &lt;configSections&gt;
+        ///  &lt;/configSections&gt;
+        ///  &lt;appSettings /&gt;
+        ///
+        ///  &lt;system.web&gt;
         ///    &lt;!-- 
         ///            Set compilation debug=&quot;true&quot; to insert debugging 
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/SuiteProvider.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/SuiteProvider.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/SuiteProvider.cs	(revision 431)
@@ -6,5 +6,6 @@
 using NUnit.Core.Extensibility;
 using NUnit.Framework;
-using OpenBastard.Scenarios;
+using OpenBastard.Environments;
+using OpenRasta.Security;
 using OpenRasta.Testing;
 using OpenRasta.Web;
@@ -114,5 +115,5 @@
 {
     protected IEnvironment Environment { get; set; }
-    protected IRequest Request { get; set; }
+    protected IClientRequest Request { get; set; }
     protected IResponse Response { get; set; }
 
@@ -122,5 +123,5 @@
     }
 
-    protected IRequest given_request_to(string uri)
+    protected IClientRequest given_request_to(string uri)
     {
         Request = Environment.CreateRequest(uri);
@@ -138,2 +139,7 @@
     }
 }
+
+public interface IClientRequest : IRequest
+{
+    Credentials Credentials { get; set; }
+}
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/RequestExtensions.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/RequestExtensions.cs	(revision 367)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Infrastructure/RequestExtensions.cs	(revision 431)
@@ -4,4 +4,5 @@
 using OpenRasta;
 using OpenRasta.IO;
+using OpenRasta.Security;
 using OpenRasta.Web;
 
@@ -10,10 +11,10 @@
     public static class RequestExtensions
     {
-        public static IRequest Accept(this IRequest request, params MediaType[] acceptedMediaTypes)
+        public static TRequest Accept<TRequest>(this TRequest request, params MediaType[] acceptedMediaTypes) where TRequest:IRequest
         {
             return request.Accept(acceptedMediaTypes.Select(x => x.ToString()).ToArray());
         }
 
-        public static IRequest Accept(this IRequest request, params string[] acceptedMediaTypes)
+        public static TRequest Accept<TRequest>(this TRequest request, params string[] acceptedMediaTypes) where TRequest : IRequest
         {
             request.Headers["Accept"] = string.Join(",", acceptedMediaTypes);
@@ -21,5 +22,5 @@
         }
 
-        public static IRequest ContentLength(this IRequest request, long length)
+        public static TRequest ContentLength<TRequest>(this TRequest request, long length) where TRequest : IRequest
         {
             request.Entity.ContentLength = length;
@@ -27,5 +28,5 @@
         }
 
-        public static IRequest ContentType(this IRequest request, string contentType)
+        public static TRequest ContentType<TRequest>(this TRequest request, string contentType) where TRequest : IRequest
         {
             request.Entity.ContentType = new MediaType(contentType);
@@ -33,11 +34,15 @@
         }
 
-        public static IRequest Delete(this IRequest request)
+        public static TRequest Delete<TRequest>(this TRequest request) where TRequest : IRequest
         {
             request.HttpMethod = "DELETE";
             return request;
         }
-
-        public static IRequest EntityAsMultipartFormData(this IRequest request, params FormData[] entities)
+        public static TRequest Credentials<TRequest>(this TRequest request, string username, string password) where TRequest:IClientRequest
+        {
+            request.Credentials = new Credentials { Username = username, Password = password };
+            return request;
+        }
+        public static TRequest EntityAsMultipartFormData<TRequest>(this TRequest request, params FormData[] entities) where TRequest : IRequest
         {
             string boundary = "mordor";
@@ -58,5 +63,5 @@
         }
 
-        public static IRequest EntityBody(this IRequest request, byte[] bytesToWrite)
+        public static TRequest EntityBody<TRequest>(this TRequest request, byte[] bytesToWrite) where TRequest : IRequest
         {
             new MemoryStream(bytesToWrite).CopyTo(request.Entity.Stream);
@@ -64,5 +69,5 @@
         }
 
-        public static IRequest Get(this IRequest request)
+        public static TRequest Get<TRequest>(this TRequest request) where TRequest : IRequest
         {
             request.HttpMethod = "GET";
@@ -70,5 +75,5 @@
         }
 
-        public static IRequest Method(this IRequest request, string httpMethod)
+        public static TRequest Method<TRequest>(this TRequest request, string httpMethod) where TRequest : IRequest
         {
             request.HttpMethod = httpMethod;
@@ -76,5 +81,5 @@
         }
 
-        public static IRequest Post(this IRequest request)
+        public static TRequest Post<TRequest>(this TRequest request) where TRequest : IRequest
         {
             request.HttpMethod = "POST";
@@ -82,5 +87,5 @@
         }
 
-        public static IRequest Put(this IRequest request)
+        public static TRequest Put<TRequest>(this TRequest request) where TRequest : IRequest
         {
             request.HttpMethod = "PUT";
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Scenarios/manipulating_users.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Scenarios/manipulating_users.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Scenarios/manipulating_users.cs	(revision 431)
@@ -20,6 +20,6 @@
                 .Post()
                 .EntityAsMultipartFormData(
-                FormData.Text("FirstName", "Frodo"), 
-                FormData.Text("LastName", "Baggins")
+                    FormData.Text("FirstName", "Frodo"), 
+                    FormData.Text("LastName", "Baggins")
                 );
 
@@ -32,5 +32,24 @@
             then_user.Id.ShouldNotBeNull();
         }
+        public void cannot_delete_user_with_wrong_credentials()
+        {
+            given_request_to(Uris.User(2))
+                .Delete()
+                .Credentials("username", "wrongpassword");
 
+            when_retrieving_the_response();
+
+            Response.StatusCode.ShouldBe(401);
+        }
+        public void can_delete_user_with_correct_credentials()
+        {
+            given_request_to(Uris.User(2))
+                .Delete()
+                .Credentials("username", "password");
+
+            when_retrieving_the_response();
+
+            Response.StatusCode.ShouldBe(200);
+        }
         void then_response_should_be_201_created()
         {
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Environments/HttpWebRequestEnvironment.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Environments/HttpWebRequestEnvironment.cs	(revision 427)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Environments/HttpWebRequestEnvironment.cs	(revision 431)
@@ -1,5 +1,4 @@
 using System;
 using System.Net;
-using OpenBastard.Scenarios;
 using OpenRasta.Hosting.InMemory;
 using OpenRasta.IO;
@@ -18,7 +17,7 @@
         public int Port { get; set; }
 
-        public IRequest CreateRequest(string uri)
+        public IClientRequest CreateRequest(string uri)
         {
-            return new InMemoryRequest
+            return new InMemoryClientRequest
                 {
                     Uri = new Uri(new Uri("http://localhost:" + Port, UriKind.Absolute), new Uri(uri, UriKind.Relative))
@@ -28,5 +27,5 @@
         public abstract void Dispose();
 
-        public IResponse ExecuteRequest(IRequest request)
+        public IResponse ExecuteRequest(IClientRequest request)
         {
             var webRequest = ConvertRequestToWebClient(request);
@@ -48,5 +47,5 @@
         public abstract void Initialize();
 
-        WebRequest ConvertRequestToWebClient(IRequest request)
+        WebRequest ConvertRequestToWebClient(IClientRequest request)
         {
             var webRequest = WebRequest.Create(request.Uri);
@@ -54,4 +53,6 @@
             if (request.Entity.ContentType != null)
                 webRequest.ContentType = request.Entity.ContentType.ToString();
+            if (request.Credentials != null)
+                webRequest.Credentials = new NetworkCredential(request.Credentials.Username, request.Credentials.Password);
             foreach (var header in request.Headers)
             {
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Environments/IEnvironment.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Environments/IEnvironment.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Environments/IEnvironment.cs	(revision 431)
@@ -1,20 +1,26 @@
+using System;
 using OpenRasta.Web;
 
-namespace OpenBastard.Scenarios
+namespace OpenBastard.Environments
 {
-    public interface IEnvironment
+    public interface IEnvironment : IDisposable
     {
         /// <summary>
-        /// Creates a reqest object that can be used to configure the http request issued by the test runner
+        /// Gets the name of the environment.
+        /// </summary>
+        string Name { get; }
+
+        /// <summary>
+        /// Creates a request object that can be used to configure the http request issued by the test runner
         /// </summary>
         /// <returns></returns>
-        IRequest CreateRequest(string uri);
+        IClientRequest CreateRequest(string uri);
 
         /// <summary>
-        /// Returns the response ojbect that the test runner got after executing a request.
+        /// Returns the response object that the test runner got after executing a request.
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
-        IResponse ExecuteRequest(IRequest request);
+        IResponse ExecuteRequest(IClientRequest request);
 
         /// <summary>
@@ -22,8 +28,4 @@
         /// </summary>
         void Initialize();
-
-        void Dispose();
-
-        string Name { get; }
     }
 }
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Environments/InMemoryEnvironment.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Environments/InMemoryEnvironment.cs	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Environments/InMemoryEnvironment.cs	(revision 431)
@@ -1,6 +1,6 @@
 ﻿using System;
 using OpenBastard.Infrastructure;
-using OpenBastard.Scenarios;
 using OpenRasta.Hosting.InMemory;
+using OpenRasta.Security;
 using OpenRasta.Web;
 
@@ -16,12 +16,4 @@
         }
 
-        public IRequest CreateRequest(string uri)
-        {
-            return new InMemoryRequest
-                {
-                    Uri = new Uri(new Uri("http://localhost", UriKind.Absolute), new Uri(uri, UriKind.Relative))
-                };
-        }
-
         public void Dispose()
         {
@@ -30,5 +22,13 @@
         }
 
-        public IResponse ExecuteRequest(IRequest request)
+        public IClientRequest CreateRequest(string uri)
+        {
+            return new InMemoryClientRequest
+            {
+                Uri = new Uri(new Uri("http://localhost", UriKind.Absolute), new Uri(uri, UriKind.Relative))
+            };
+        }
+
+        public IResponse ExecuteRequest(IClientRequest request)
         {
             if (request.Entity.Stream.Length > 0)
@@ -36,15 +36,44 @@
             var response = _host.ProcessRequest(request);
             if (response.StatusCode == 303)
-            {
-                string acceptHeader = response.Headers["Accept"];
-                var redirectedRequest = new InMemoryRequest
-                    {
-                        Uri = new Uri(response.Headers["Location"], UriKind.Absolute), 
-                        HttpMethod = "GET"
-                    }.Accept(acceptHeader);
-                response = _host.ProcessRequest(redirectedRequest);
-            }
+                response = RedirectOn303SeeOther(response);
+            else if (response.StatusCode == 401)
+                response = RetryWithHttpAuthenticationCredentials(request, response);
+
             if (response.Entity.ContentLength > 0 && response.Entity.Stream.CanSeek)
                 response.Entity.Stream.Position = 0;
+            return response;
+        }
+
+        IResponse RetryWithHttpAuthenticationCredentials(IClientRequest request, IResponse response)
+        {
+            if (response.Headers["WWW-Authenticate"] != null && response.Headers["WWW-Authenticate"].Contains("Digest"))
+            {
+                var responseDigest = DigestHeader.Parse(response.Headers["WWW-Authenticate"]);
+
+                var header = new OpenRasta.Security.DigestHeader(responseDigest)
+                {
+                    Username = request.Credentials.Username,
+                    Password = request.Credentials.Password,
+                    Nonce = responseDigest.Nonce,
+                    ClientNonce = "none",
+                    Uri = request.Uri.GetLeftPart(UriPartial.Path)
+                };
+                header.Response =  header.GetCalculatedResponse(request.HttpMethod);
+
+                request.Headers["Authorization"] = header.ClientRequestHeader;
+                return _host.ProcessRequest(request);
+            }
+            return response;
+        }
+
+        IResponse RedirectOn303SeeOther(IResponse response)
+        {
+            string acceptHeader = response.Headers["Accept"];
+            var redirectedRequest = new InMemoryRequest
+            {
+                Uri = new Uri(response.Headers["Location"], UriKind.Absolute), 
+                HttpMethod = "GET"
+            }.Accept(acceptHeader);
+            response = _host.ProcessRequest(redirectedRequest);
             return response;
         }
@@ -55,3 +84,8 @@
         }
     }
+
+    public class InMemoryClientRequest : InMemoryRequest, IClientRequest
+    {
+        public Credentials Credentials { get; set; }
+    }
 }
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7Environment.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7Environment.cs	(revision 367)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7Environment.cs	(revision 431)
@@ -1,3 +1,4 @@
 using System;
+using System.Configuration.Assemblies;
 using System.Diagnostics;
 using System.IO;
@@ -20,5 +21,5 @@
         {
         }
-
+        protected virtual bool IsMediumTrust { get; set; }
         protected abstract bool Integrated { get; }
 
@@ -69,5 +70,8 @@
         protected override string GetWebConfig()
         {
-            return IisConfigFiles.webconfig;
+            var name = typeof(Iis7Environment).Assembly.GetName();
+
+            return string.Format(IsMediumTrust ? IisConfigFiles.web_mediumtrust : IisConfigFiles.webconfig,
+                name.Version.ToString(), Convert.ToBase64String(name.GetPublicKey()));
         }
 
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7ClassicMediumTrustEnvironment.cs
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7ClassicMediumTrustEnvironment.cs	(revision 431)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Environments/Iis7/Iis7ClassicMediumTrustEnvironment.cs	(revision 431)
@@ -0,0 +1,24 @@
+﻿namespace OpenBastard.Environments.Iis7
+{
+    public class Iis7ClassicMediumTrustEnvironment : Iis7Environment
+    {
+        public override string Name
+        {
+            get { return "IIS 7 - Classic Mode Medium Trust"; }
+        }
+        protected override bool IsMediumTrust
+        {
+            get
+            {
+                return true;
+            }
+            set
+            {
+            }
+        }
+        protected override bool Integrated
+        {
+            get { return false; }
+        }
+    }
+}
Index: /trunk/src/openbastard/OpenBastard.TestRunner/OpenBastard.TestRunner.csproj
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/OpenBastard.TestRunner.csproj	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/OpenBastard.TestRunner.csproj	(revision 431)
@@ -60,4 +60,5 @@
     <Compile Include="Environments\HttpWebRequestEnvironment.cs" />
     <Compile Include="Environments\FileBasedAspNetEnvironment.cs" />
+    <Compile Include="Environments\Iis7\Iis7ClassicMediumTrustEnvironment.cs" />
     <Compile Include="Environments\Iis7\Iis7ClassicEnvironment.cs" />
     <Compile Include="Environments\Iis7\Iis7Environment.cs" />
@@ -106,4 +107,5 @@
   </ItemGroup>
   <ItemGroup>
+    <None Include="Resources\web.mediumtrust.config" />
     <None Include="Resources\iis7.applicationHost.config" />
     <None Include="Resources\web.config" />
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.config
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.config	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.config	(revision 431)
@@ -19,7 +19,7 @@
         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
         <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
-        <add assembly="OpenRasta.Hosting.AspNet" />
-        <add assembly="OpenRasta.Codecs.WebForms" />
-        <add assembly="OpenRasta" />
+        <add assembly="OpenRasta.Hosting.AspNet, Version={0}, Culture=neutral, PublicKeyToken={1}" />
+        <add assembly="OpenRasta.Codecs.WebForms, Version={0}, Culture=neutral, PublicKeyToken={1}" />
+        <add assembly="OpenRasta, Version={0}, Culture=neutral, PublicKeyToken={1}" />
         <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
       </assemblies>
@@ -50,8 +50,8 @@
       <add verb="*" path="*.notimplemented" type="System.Web.HttpNotImplementedHandler"/>
       <add verb="*" path="*.methodnotallowed" type="System.Web.HttpMethodNotAllowedHandler"/>
-      <add verb="*" path="*.rastahook" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet" />
+      <add verb="*" path="*.rastahook" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet, Version={0}, Culture=neutral, PublicKeyToken={1}" />
     </httpHandlers>
     <httpModules>
-      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
+      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet, Version={0}, Culture=neutral, PublicKeyToken={1}" />
     </httpModules>
     <urlMappings enabled="true">
@@ -70,9 +70,9 @@
     <validation validateIntegratedModeConfiguration="false" />
     <modules runAllManagedModulesForAllRequests="true">
-      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
+      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet, Version={0}, Culture=neutral, PublicKeyToken={1}" />
     </modules>
     <handlers >
       <add name="NotImplementedHandler" verb="*" path="*.mapped" type="System.Web.HttpNotImplementedHandler" resourceType="Unspecified" requireAccess="Script"/>
-      <add name="RastaIIS5CompatHandler" path="*.rastahook" verb="*" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet" resourceType="Unspecified" requireAccess="Script" />
+      <add name="RastaIIS5CompatHandler" path="*.rastahook" verb="*" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet, Version={0}, Culture=neutral, PublicKeyToken={1}" resourceType="Unspecified" requireAccess="Script" />
 
 
Index: /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.mediumtrust.config
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.mediumtrust.config	(revision 431)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/Resources/web.mediumtrust.config	(revision 431)
@@ -0,0 +1,96 @@
+﻿<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+  <configSections>
+  </configSections>
+  <appSettings />
+
+  <system.web>
+    <trust level="Medium"/>
+    <!-- 
+            Set compilation debug="true" to insert debugging 
+            symbols into the compiled page. Because this 
+            affects performance, set this value to true only 
+            during development.
+        -->
+    <compilation debug="true" numRecompilesBeforeAppRestart="1" >
+      <assemblies>
+        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
+        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
+        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
+        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
+        <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
+        <add assembly="OpenRasta.Hosting.AspNet" />
+        <add assembly="OpenRasta.Codecs.WebForms" />
+        <add assembly="OpenRasta" />
+        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
+      </assemblies>
+    </compilation>
+    <customErrors mode="On">
+    </customErrors>
+    <!--
+            The <authentication> section enables configuration 
+            of the security authentication mode used by 
+            ASP.NET to identify an incoming user. 
+        -->
+    <authentication mode="Windows" />
+    <pages>
+      <namespaces>
+        <add namespace="OpenRasta.Web" />
+        <add namespace="OpenRasta.Codecs.WebForms" />
+        <add namespace="OpenRasta" />
+        <add namespace="System.Linq" />
+      </namespaces>
+
+      <controls>
+        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
+        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
+      </controls>
+    </pages>
+    <httpHandlers>
+      <remove verb="*" path="*.asmx" />
+      <add verb="*" path="*.notimplemented" type="System.Web.HttpNotImplementedHandler"/>
+      <add verb="*" path="*.methodnotallowed" type="System.Web.HttpMethodNotAllowedHandler"/>
+      <add verb="*" path="*.rastahook" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet" />
+    </httpHandlers>
+    <httpModules>
+      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
+    </httpModules>
+    <urlMappings enabled="true">
+      <add url="~/mappedCustomers" mappedUrl="customers.methodnotallowed"/>
+    </urlMappings>
+  </system.web>
+  <system.codedom>
+    <compilers>
+      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+        <providerOption name="CompilerVersion" value="v3.5" />
+        <providerOption name="WarnAsError" value="false" />
+      </compiler>
+    </compilers>
+  </system.codedom>
+  <system.webServer>
+    <validation validateIntegratedModeConfiguration="false" />
+    <modules runAllManagedModulesForAllRequests="true">
+      <add name="RastaModule" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" />
+    </modules>
+    <handlers >
+      <add name="NotImplementedHandler" verb="*" path="*.mapped" type="System.Web.HttpNotImplementedHandler" resourceType="Unspecified" requireAccess="Script"/>
+      <add name="RastaIIS5CompatHandler" path="*.rastahook" verb="*" type="OpenRasta.Hosting.AspNet.OpenRastaHandler, OpenRasta.Hosting.AspNet" resourceType="Unspecified" requireAccess="Script" />
+
+
+      <add name="AspNetWildcard-ISAPI-2.0" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+      <add name="AspNetWildcard-ISAPI-2.0-64" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+    </handlers>
+  </system.webServer>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
+        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
+        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
Index: /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.resx
===================================================================
--- /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.resx	(revision 356)
+++ /trunk/src/openbastard/OpenBastard.TestRunner/IisConfigFiles.resx	(revision 431)
@@ -125,3 +125,6 @@
     <value>Resources\web.config;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
   </data>
+  <data name="web_mediumtrust" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>resources\web.mediumtrust.config;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
 </root>
Index: /trunk/src/unity/OpenRasta.DI.Unity/Extensions/Policies/TypeToBeResolved.cs
===================================================================
--- /trunk/src/unity/OpenRasta.DI.Unity/Extensions/Policies/TypeToBeResolved.cs	(revision 427)
+++ /trunk/src/unity/OpenRasta.DI.Unity/Extensions/Policies/TypeToBeResolved.cs	(revision 431)
@@ -15,5 +15,5 @@
             : base(parameterType)
         {
-            this._resolver = resolver;
+            _resolver = resolver;
         }
 
Index: /trunk/src/unity/OpenRasta.DI.Unity/UnityDependencyResolver.cs
===================================================================
--- /trunk/src/unity/OpenRasta.DI.Unity/UnityDependencyResolver.cs	(revision 427)
+++ /trunk/src/unity/OpenRasta.DI.Unity/UnityDependencyResolver.cs	(revision 431)
@@ -1,4 +1,5 @@
 ﻿using System;
-using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
 using Microsoft.Practices.Unity;
 using OpenRasta.DI.Unity.Extensions;
@@ -146,19 +147,12 @@
         }
 
-        protected override IEnumerable<TService> ResolveAllCore<TService>()
+        protected override IEnumerable ResolveAllCore(Type serviceType)
         {
             var types = OptionalContextContainer()
                 .TypeTracker()
-                .GetAllConcreteTypes(typeof(TService));
+                .GetAllConcreteTypes(serviceType);
 
             var current = OptionalContextContainer();
-            var services = new List<TService>();
-
-            foreach (var type in types)
-            {
-                services.Add((TService)current.Resolve(type));
-            }
-
-            return services;
+            return types.Select(x => current.Resolve(x)).ToArray();
         }
 
Index: /trunk/src/sharpview/OpenRasta.Codecs.SharpView.Tests.Unit/SharpView_Specification.cs
===================================================================
--- /trunk/src/sharpview/OpenRasta.Codecs.SharpView.Tests.Unit/SharpView_Specification.cs	(revision 427)
+++ /trunk/src/sharpview/OpenRasta.Codecs.SharpView.Tests.Unit/SharpView_Specification.cs	(revision 431)
@@ -291,9 +291,19 @@
         public void the_foreach_is_not_executed_when_the_if_case_evaluates_to_false()
         {
-            var strings = new[] {"one", "two"};
+            var strings = new List<string> {"one", "two"};
             var e =
                 new InlineSharpViewElement(
                     () => Document.CreateElement<IDivElement>().ForEach(strings).Class("item").If(false));
             e.OuterXml.ShouldBe(string.Empty);
+        }
+        [Test, Ignore()]
+        public void current_in_if_is_rewritten()
+        {
+
+            var strings = new List<string> { "one", "two" };
+            var e =
+                new InlineSharpViewElement(
+                    () => Document.CreateElement<IDivElement>().ForEach(strings)).If(strings.Current());
+            e.OuterXml.ShouldBe("<div class=\"item\"></div>");
         }
     }
Index: /trunk/src/sharpview/sharpview.4.5.resharper
===================================================================
--- /trunk/src/sharpview/sharpview.4.5.resharper	(revision 337)
+++ /trunk/src/sharpview/sharpview.4.5.resharper	(revision 431)
@@ -9,5 +9,22 @@
           <Dictionaries>
             <CustomDictionary>
-              <Name>en-US</Name>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords>Codec
+Rasta
+Multipart
+Locator
+Codecs
+Http
+seekable
+crlf
+Html
+openrasta
+args
+localhost
+Accessor</UserWords>
+            </CustomDictionary>
+            <CustomDictionary>
+              <Name>en-GB</Name>
               <CaseSensitive>false</CaseSensitive>
               <UserWords />
@@ -15,9 +32,9 @@
           </Dictionaries>
         </CustomDictionaries>
-        <StringsDictionary>en-US</StringsDictionary>
-        <IdentifierDictionary>en-US</IdentifierDictionary>
-        <LastSelectedCustomDictionary>en-US</LastSelectedCustomDictionary>
+        <StringsDictionary>en-GB</StringsDictionary>
+        <IdentifierDictionary>en-GB</IdentifierDictionary>
+        <LastSelectedCustomDictionary>en-GB</LastSelectedCustomDictionary>
         <CommentsSettings>
-          <DictionaryName>en-US</DictionaryName>
+          <DictionaryName>en-GB</DictionaryName>
           <CommentMatch>
             <Match>
@@ -29,5 +46,6 @@
             </Match>
           </CommentMatch>
-          <SuppressIfBaseHasComment>false</SuppressIfBaseHasComment>
+          <CommentNotMatch />
+          <SuppressIfBaseHasComment>true</SuppressIfBaseHasComment>
           <MaxLineLength>80</MaxLineLength>
         </CommentsSettings>
@@ -63,4 +81,42 @@
               <NotMatches />
               <Description>Classes, Enumerations, Enumeration values should be named in Pascal</Description>
+              <MustHavePrefixes />
+              <MustNotHavePrefixes>
+                <string>m_</string>
+              </MustNotHavePrefixes>
+              <Rule>Pascal</Rule>
+              <MustHaveSuffixes />
+              <MustNotHaveSuffixes />
+            </NamingConventionRule>
+            <NamingConventionRule>
+              <IsDisabled>false</IsDisabled>
+              <Matches>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Property</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Method</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Event</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+              </Matches>
+              <NotMatches />
+              <Description>Non private properties, methods, events should be in pascal.</Description>
               <MustHavePrefixes />
               <MustNotHavePrefixes>
@@ -73,44 +129,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
-              <Matches>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Property</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Method</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Event</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-              </Matches>
-              <NotMatches />
-              <Description>Non private properties, methods, events should be in pascal.</Description>
-              <MustHavePrefixes />
-              <MustNotHavePrefixes>
-                <string>_</string>
-                <string>m_</string>
-              </MustNotHavePrefixes>
-              <Rule>Pascal</Rule>
-              <MustHaveSuffixes />
-              <MustNotHaveSuffixes />
-            </NamingConventionRule>
-            <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -284,5 +301,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -336,5 +353,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -359,5 +376,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -734,4 +751,5 @@
           </Match>
         </IdentifiersToSpellCheck>
+        <IdentifiersNotToSpellCheck />
         <PatternsToIgnore>
           <string>(?#email)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</string>
@@ -742,9 +760,12 @@
     <CSharp>
       <FormatSettings>
+        <ANONYMOUS_METHOD_DECLARATION_BRACES>NEXT_LINE</ANONYMOUS_METHOD_DECLARATION_BRACES>
         <BLANK_LINES_INSIDE_REGION>0</BLANK_LINES_INSIDE_REGION>
+        <CASE_BLOCK_BRACES>NEXT_LINE</CASE_BLOCK_BRACES>
         <EXPLICIT_PRIVATE_MODIFIER>False</EXPLICIT_PRIVATE_MODIFIER>
         <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
         <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
         <INDENT_SIZE>4</INDENT_SIZE>
+        <INITIALIZER_BRACES>NEXT_LINE</INITIALIZER_BRACES>
         <MODIFIERS_ORDER IsNull="False">
           <Item>public</Item>
@@ -773,5 +794,9 @@
         <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
       </FormatSettings>
-      <UsingsSettings />
+      <UsingsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </UsingsSettings>
       <Naming2>
         <ExceptionName IsNull="False">
@@ -1037,5 +1062,9 @@
         <INDENT_SIZE>4</INDENT_SIZE>
       </FormatSettings>
-      <ImportsSettings />
+      <ImportsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </ImportsSettings>
       <Naming2 />
     </VB>
@@ -1059,5 +1088,6 @@
       <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly" />
+      <Abbreviation Text="OK" />
     </Naming2>
   </CodeStyleSettings>
Index: /trunk/src/vside/templates/aspnet35/default.aspx
===================================================================
--- /trunk/src/vside/templates/aspnet35/default.aspx	(revision 392)
+++ /trunk/src/vside/templates/aspnet35/default.aspx	(revision 431)
@@ -1,10 +1,3 @@
-﻿<%@ Page Language="C#" %>
-<!-- Nothing to see here. -->
-<html>
-<head>
-    <title>Redirection page</title>
-</head>
-<body>
-<%
+﻿<%@ Page Language="C#" %><%
 string originalPath = Request.Path;
 HttpContext.Current.RewritePath(Request.ApplicationPath, false);
@@ -13,4 +6,2 @@
 HttpContext.Current.RewritePath(originalPath, false);
 %>
-</body>
-</html>
Index: /trunk/src/castle/OpenRasta.DI.Windsor.4.5.resharper
===================================================================
--- /trunk/src/castle/OpenRasta.DI.Windsor.4.5.resharper	(revision 363)
+++ /trunk/src/castle/OpenRasta.DI.Windsor.4.5.resharper	(revision 431)
@@ -7,11 +7,34 @@
       <CodeStyleSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <CustomDictionaries>
-          <Dictionaries />
+          <Dictionaries>
+            <CustomDictionary>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords>Codec
+Rasta
+Multipart
+Locator
+Codecs
+Http
+seekable
+crlf
+Html
+openrasta
+args
+localhost
+Accessor</UserWords>
+            </CustomDictionary>
+            <CustomDictionary>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords />
+            </CustomDictionary>
+          </Dictionaries>
         </CustomDictionaries>
-        <StringsDictionary>en-US</StringsDictionary>
-        <IdentifierDictionary>en-US</IdentifierDictionary>
-        <LastSelectedCustomDictionary>en-US</LastSelectedCustomDictionary>
+        <StringsDictionary>en-GB</StringsDictionary>
+        <IdentifierDictionary>en-GB</IdentifierDictionary>
+        <LastSelectedCustomDictionary>en-GB</LastSelectedCustomDictionary>
         <CommentsSettings>
-          <DictionaryName>en-US</DictionaryName>
+          <DictionaryName>en-GB</DictionaryName>
           <CommentMatch>
             <Match>
@@ -23,5 +46,6 @@
             </Match>
           </CommentMatch>
-          <SuppressIfBaseHasComment>false</SuppressIfBaseHasComment>
+          <CommentNotMatch />
+          <SuppressIfBaseHasComment>true</SuppressIfBaseHasComment>
           <MaxLineLength>80</MaxLineLength>
         </CommentsSettings>
@@ -57,4 +81,42 @@
               <NotMatches />
               <Description>Classes, Enumerations, Enumeration values should be named in Pascal</Description>
+              <MustHavePrefixes />
+              <MustNotHavePrefixes>
+                <string>m_</string>
+              </MustNotHavePrefixes>
+              <Rule>Pascal</Rule>
+              <MustHaveSuffixes />
+              <MustNotHaveSuffixes />
+            </NamingConventionRule>
+            <NamingConventionRule>
+              <IsDisabled>false</IsDisabled>
+              <Matches>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Property</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Method</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Event</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+              </Matches>
+              <NotMatches />
+              <Description>Non private properties, methods, events should be in pascal.</Description>
               <MustHavePrefixes />
               <MustNotHavePrefixes>
@@ -67,44 +129,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
-              <Matches>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Property</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Method</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Event</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-              </Matches>
-              <NotMatches />
-              <Description>Non private properties, methods, events should be in pascal.</Description>
-              <MustHavePrefixes />
-              <MustNotHavePrefixes>
-                <string>_</string>
-                <string>m_</string>
-              </MustNotHavePrefixes>
-              <Rule>Pascal</Rule>
-              <MustHaveSuffixes />
-              <MustNotHaveSuffixes />
-            </NamingConventionRule>
-            <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -278,5 +301,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -330,5 +353,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -353,5 +376,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -728,4 +751,5 @@
           </Match>
         </IdentifiersToSpellCheck>
+        <IdentifiersNotToSpellCheck />
         <PatternsToIgnore>
           <string>(?#email)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</string>
@@ -737,13 +761,11 @@
       <FormatSettings>
         <ANONYMOUS_METHOD_DECLARATION_BRACES>NEXT_LINE</ANONYMOUS_METHOD_DECLARATION_BRACES>
+        <BLANK_LINES_INSIDE_REGION>0</BLANK_LINES_INSIDE_REGION>
         <CASE_BLOCK_BRACES>NEXT_LINE</CASE_BLOCK_BRACES>
         <EXPLICIT_PRIVATE_MODIFIER>False</EXPLICIT_PRIVATE_MODIFIER>
-        <FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
         <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
         <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
         <INDENT_SIZE>4</INDENT_SIZE>
         <INITIALIZER_BRACES>NEXT_LINE</INITIALIZER_BRACES>
-        <KEEP_BLANK_LINES_IN_CODE>1</KEEP_BLANK_LINES_IN_CODE>
-        <KEEP_BLANK_LINES_IN_DECLARATIONS>1</KEEP_BLANK_LINES_IN_DECLARATIONS>
         <MODIFIERS_ORDER IsNull="False">
           <Item>public</Item>
@@ -762,11 +784,19 @@
           <Item>volatile</Item>
         </MODIFIERS_ORDER>
-        <PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>False</PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>
-        <PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>False</PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>
-        <PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>False</PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>
-        <WRAP_LIMIT>180</WRAP_LIMIT>
-        <WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>CHOP_ALWAYS</WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>
+        <SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
+        <SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
+        <SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>
+        <SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
+        <SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>True</SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>
+        <WRAP_ARGUMENTS_STYLE>CHOP_IF_LONG</WRAP_ARGUMENTS_STYLE>
+        <WRAP_EXTENDS_LIST_STYLE>CHOP_IF_LONG</WRAP_EXTENDS_LIST_STYLE>
+        <WRAP_LIMIT>200</WRAP_LIMIT>
+        <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
       </FormatSettings>
-      <UsingsSettings />
+      <UsingsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </UsingsSettings>
       <Naming2>
         <ExceptionName IsNull="False">
@@ -784,193 +814,247 @@
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
+        <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
+        <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
+        <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
+        <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
       </Naming2>
-      <CustomMemberReorderingPatterns><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
-
-<!--
-I. Overall
-
-I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used 
-I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries
-I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared
-I.4 The contents of each entry is sorted by given keys (First key is primary,  next key is secondary, etc). Then the declarations are grouped and en-regioned by given property
-
-II. Available match operands
-
-Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'.
-The default weight is 1
-
-II.1 Boolean functions:
-II.1.1 <And>....</And>
-II.1.2 <Or>....</Or>
-II.1.3 <Not>....</Not>
-
-II.2 Operands
-II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member
-II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression
-II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression
-II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private
-II.2.5 <Static/>
-II.2.6 <Abstract/>
-II.2.7 <Virtual/>
-II.2.8 <Override/>
-II.2.9 <Sealed/>
-II.2.10 <Readonly/>
-II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression
-II.2.12 <HandlesEvent />
--->
-
-<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
-
-  <!--Do not reorder COM interfaces and structs marked by StructLayout attribute-->
-  <Pattern>
-    <Match>
-      <Or Weight="100">
-        <And>
-          <Kind Is="interface"/>
-          <Or>
-            <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
-            <HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/>
-          </Or>
-        </And>
-        <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
-      </Or>
-    </Match>
-  </Pattern>
-
-  <!--Special formatting of NUnit test fixture-->
-  <Pattern RemoveAllRegions="true">
-    <Match>
-      <And Weight="100">
-        <Kind Is="class"/>
-        <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/>
-      </And>
-    </Match>
-
-    <!--Setup/Teardow-->
-    <Entry>
-      <Match>
-        <And>
-          <Kind Is="method"/>
-          <Or>
-            <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.FixtureSetUpAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.FixtureTearDownAttribute" Inherit="true"/>
-          </Or>
-        </And>
-      </Match>
-    </Entry>
-    
-    <!--All other members-->
-    <Entry/>
-    
-    <!--Test methods-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Kind Is="method"/>
-          <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-  </Pattern>
-
-  <!--Default pattern-->
-  <Pattern>
-
-    <!--public delegate-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Access Is="public"/>
-          <Kind Is="delegate"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-    
-    <!--public enum-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Access Is="public"/>
-          <Kind Is="enum"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-
-    <!--fields and constants-->
-    <Entry>
-      <Match>
-        <Or>
-          <Kind Is="constant"/>
-          <Kind Is="field"/>
-        </Or>
-      </Match>
-      <Sort>
-        <Kind Order="constant field"/>
-        <Static/>
-        <Readonly/>
-        <Name/>
-      </Sort>
-    </Entry>
-
-    <!--Constructors. Place static one first-->
-    <Entry>
-      <Match>
-        <Kind Is="constructor"/>
-      </Match>
-      <Sort>
-        <Static/>
-      </Sort>
-    </Entry>
-    
-    <!--properties, indexers-->
-    <Entry>
-      <Match>
-        <Or>
-          <Kind Is="property"/>
-          <Kind Is="indexer"/>
-        </Or>
-      </Match>
-    </Entry>
-    
-    <!--interface implementations-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Kind Is="member"/>
-          <ImplementsInterface/>
-        </And>
-      </Match>
-      <Sort>
-        <ImplementsInterface Immediate="true"/>
-      </Sort>
-    </Entry>
-    
-    <!--all other members-->
-    <Entry/>
-    
-    <!--nested types-->
-    <Entry>
-      <Match>
-        <Kind Is="type"/>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-  </Pattern>
-  
-</Patterns>
-]]></CustomMemberReorderingPatterns>
+      <CustomMemberReorderingPatterns><![CDATA[<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
+
+    <!-- Do not reorder COM interfaces -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Kind Is="interface"/>
+                <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"
+                              Inherit="true"/>
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- Do not reorder P/Invoke structs -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Or>
+                    <Kind Is="struct"/>
+                    <Kind Is="class"/>
+                </Or>
+                <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"
+                              Inherit="true"/>
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- Do not reorder P/Invoke classes (called xxxNativeMethods) -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Kind Is="class"/>
+                <Name Is=".*NativeMethods" />
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- StyleCop pattern -->
+    <Pattern RemoveAllRegions="true">
+        <Match>
+            <Or Weight="1000" >
+                <Kind Is="class" />
+                <Kind Is="struct" />
+            </Or>
+        </Match>
+
+        <!-- constants and fields -->
+        <Entry>
+            <Match>
+                <Or>
+                    <Kind Is="constant"/>
+                    <Kind Is="field"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Kind Order="constant field"/>
+                <Readonly/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- constructors -->
+        <Entry>
+            <Match>
+                <Or Weight="200">
+                    <Kind Is="constructor"/>
+                    <Kind Is="destructor"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Static/>
+                <Kind Order="constructor destructor"/>
+                <Access Order="public internal protected-internal protected private"/>
+            </Sort>
+        </Entry>
+
+        <!-- delegates and events -->
+        <Entry>
+            <Match>
+                <Or>
+                    <Kind Is="delegate"/>
+                    <Kind Is="event"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Kind Order="delegate event"/>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- enum -->
+        <Entry>
+            <Match>
+                <Kind Is="enum"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- interfaces -->
+        <Entry>
+            <Match>
+                <Kind Is="interface" />
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- properties -->
+        <Entry>
+            <Match>
+                <Kind Is="property"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- indexers -->
+        <Entry>
+            <Match>
+                <Kind Is="indexer"
+                      Weight="300" />
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- operator -->
+        <Entry>
+            <Match>
+                <Kind Is="operator"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- public methods -->
+        <Entry>
+            <Match>
+                <And>
+                    <Kind Is="method"/>
+                    <Access Is="public"/>
+                </And>
+            </Match>
+            <Sort>
+                <Access Order="public"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Implemented Interfaces -->
+        <Entry>
+            <Match>
+                <And Weight="500">
+                    <Kind Is="method"/>
+                    <ImplementsInterface CLRName=".*"/>
+                </And>
+            </Match>
+            <Sort>
+                <ImplementsInterface />
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- other methods -->
+        <Entry>
+            <Match>
+                <Kind Is="method"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Event handlers -->
+        <Entry>
+            <Match>
+                <HandlesEvent Weight="400" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Override/>
+                <Name/>
+            </Sort>
+        </Entry>
+        <!-- Nested structs -->
+        <Entry>
+            <Match>
+                <Kind Is="struct"
+                      Weight="600" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Nested classes -->
+        <Entry>
+            <Match>
+                <Kind Is="class"
+                      Weight="700" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- all other members -->
+        <Entry/>
+
+    </Pattern>
+</Patterns>]]></CustomMemberReorderingPatterns>
     </CSharp>
     <VB>
@@ -978,5 +1062,9 @@
         <INDENT_SIZE>4</INDENT_SIZE>
       </FormatSettings>
-      <ImportsSettings />
+      <ImportsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </ImportsSettings>
       <Naming2 />
     </VB>
@@ -990,5 +1078,5 @@
       <PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="LocalConstants" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
@@ -999,6 +1087,7 @@
       <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
       <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly" />
+      <Abbreviation Text="OK" />
     </Naming2>
   </CodeStyleSettings>
Index: /trunk/src/castle/OpenRasta.DI.Windsor/WindsorDependencyResolver.cs
===================================================================
--- /trunk/src/castle/OpenRasta.DI.Windsor/WindsorDependencyResolver.cs	(revision 363)
+++ /trunk/src/castle/OpenRasta.DI.Windsor/WindsorDependencyResolver.cs	(revision 431)
@@ -11,4 +11,5 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Diagnostics;
@@ -64,13 +65,12 @@
         }
 
-        protected override IEnumerable<TService> ResolveAllCore<TService>()
-        {
-            // return _windsorContainer.ResolveAll<TService>();
-            var handlers = _windsorContainer.Kernel.GetAssignableHandlers(typeof (TService));
-            var resolved = new List<TService>();
+        protected override IEnumerable ResolveAllCore(Type serviceType)
+        {
+            var handlers = _windsorContainer.Kernel.GetAssignableHandlers(serviceType);
+            var resolved = new ArrayList();
             foreach (var handler in AvailableHandlers(handlers))
                 try
                 {
-                    resolved.Add((TService) _windsorContainer.Resolve(handler.ComponentModel.Name));
+                    resolved.Add(_windsorContainer.Resolve(handler.ComponentModel.Name));
                 }
                 catch
Index: /trunk/src/castle/OpenRasta.DI.Windsor-1.0.rc3.4.5.resharper
===================================================================
--- /trunk/src/castle/OpenRasta.DI.Windsor-1.0.rc3.4.5.resharper	(revision 367)
+++ /trunk/src/castle/OpenRasta.DI.Windsor-1.0.rc3.4.5.resharper	(revision 431)
@@ -7,11 +7,34 @@
       <CodeStyleSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <CustomDictionaries>
-          <Dictionaries />
+          <Dictionaries>
+            <CustomDictionary>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords>Codec
+Rasta
+Multipart
+Locator
+Codecs
+Http
+seekable
+crlf
+Html
+openrasta
+args
+localhost
+Accessor</UserWords>
+            </CustomDictionary>
+            <CustomDictionary>
+              <Name>en-GB</Name>
+              <CaseSensitive>false</CaseSensitive>
+              <UserWords />
+            </CustomDictionary>
+          </Dictionaries>
         </CustomDictionaries>
-        <StringsDictionary>en-US</StringsDictionary>
-        <IdentifierDictionary>en-US</IdentifierDictionary>
-        <LastSelectedCustomDictionary>en-US</LastSelectedCustomDictionary>
+        <StringsDictionary>en-GB</StringsDictionary>
+        <IdentifierDictionary>en-GB</IdentifierDictionary>
+        <LastSelectedCustomDictionary>en-GB</LastSelectedCustomDictionary>
         <CommentsSettings>
-          <DictionaryName>en-US</DictionaryName>
+          <DictionaryName>en-GB</DictionaryName>
           <CommentMatch>
             <Match>
@@ -23,5 +46,6 @@
             </Match>
           </CommentMatch>
-          <SuppressIfBaseHasComment>false</SuppressIfBaseHasComment>
+          <CommentNotMatch />
+          <SuppressIfBaseHasComment>true</SuppressIfBaseHasComment>
           <MaxLineLength>80</MaxLineLength>
         </CommentsSettings>
@@ -57,4 +81,42 @@
               <NotMatches />
               <Description>Classes, Enumerations, Enumeration values should be named in Pascal</Description>
+              <MustHavePrefixes />
+              <MustNotHavePrefixes>
+                <string>m_</string>
+              </MustNotHavePrefixes>
+              <Rule>Pascal</Rule>
+              <MustHaveSuffixes />
+              <MustNotHaveSuffixes />
+            </NamingConventionRule>
+            <NamingConventionRule>
+              <IsDisabled>false</IsDisabled>
+              <Matches>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Property</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Method</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+                <Match>
+                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
+                  <Declaration>Event</Declaration>
+                  <MarkedWithAttribute />
+                  <IsReadOnly>Maybe</IsReadOnly>
+                  <IsStatic>Maybe</IsStatic>
+                  <ParamDirection>Any</ParamDirection>
+                </Match>
+              </Matches>
+              <NotMatches />
+              <Description>Non private properties, methods, events should be in pascal.</Description>
               <MustHavePrefixes />
               <MustNotHavePrefixes>
@@ -67,44 +129,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
-              <Matches>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Property</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Method</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-                <Match>
-                  <AccessLevel>Public Internal Protected ProtectedInternal</AccessLevel>
-                  <Declaration>Event</Declaration>
-                  <MarkedWithAttribute />
-                  <IsReadOnly>Maybe</IsReadOnly>
-                  <IsStatic>Maybe</IsStatic>
-                  <ParamDirection>Any</ParamDirection>
-                </Match>
-              </Matches>
-              <NotMatches />
-              <Description>Non private properties, methods, events should be in pascal.</Description>
-              <MustHavePrefixes />
-              <MustNotHavePrefixes>
-                <string>_</string>
-                <string>m_</string>
-              </MustNotHavePrefixes>
-              <Rule>Pascal</Rule>
-              <MustHaveSuffixes />
-              <MustNotHaveSuffixes />
-            </NamingConventionRule>
-            <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -278,5 +301,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -330,5 +353,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -353,5 +376,5 @@
             </NamingConventionRule>
             <NamingConventionRule>
-              <IsDisabled>false</IsDisabled>
+              <IsDisabled>true</IsDisabled>
               <Matches>
                 <Match>
@@ -728,4 +751,5 @@
           </Match>
         </IdentifiersToSpellCheck>
+        <IdentifiersNotToSpellCheck />
         <PatternsToIgnore>
           <string>(?#email)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</string>
@@ -737,13 +761,11 @@
       <FormatSettings>
         <ANONYMOUS_METHOD_DECLARATION_BRACES>NEXT_LINE</ANONYMOUS_METHOD_DECLARATION_BRACES>
+        <BLANK_LINES_INSIDE_REGION>0</BLANK_LINES_INSIDE_REGION>
         <CASE_BLOCK_BRACES>NEXT_LINE</CASE_BLOCK_BRACES>
         <EXPLICIT_PRIVATE_MODIFIER>False</EXPLICIT_PRIVATE_MODIFIER>
-        <FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
         <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
         <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
         <INDENT_SIZE>4</INDENT_SIZE>
         <INITIALIZER_BRACES>NEXT_LINE</INITIALIZER_BRACES>
-        <KEEP_BLANK_LINES_IN_CODE>1</KEEP_BLANK_LINES_IN_CODE>
-        <KEEP_BLANK_LINES_IN_DECLARATIONS>1</KEEP_BLANK_LINES_IN_DECLARATIONS>
         <MODIFIERS_ORDER IsNull="False">
           <Item>public</Item>
@@ -762,11 +784,19 @@
           <Item>volatile</Item>
         </MODIFIERS_ORDER>
-        <PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>False</PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>
-        <PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>False</PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>
-        <PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>False</PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>
-        <WRAP_LIMIT>180</WRAP_LIMIT>
-        <WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>CHOP_ALWAYS</WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>
+        <SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
+        <SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
+        <SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>
+        <SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
+        <SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>True</SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>
+        <WRAP_ARGUMENTS_STYLE>CHOP_IF_LONG</WRAP_ARGUMENTS_STYLE>
+        <WRAP_EXTENDS_LIST_STYLE>CHOP_IF_LONG</WRAP_EXTENDS_LIST_STYLE>
+        <WRAP_LIMIT>200</WRAP_LIMIT>
+        <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
       </FormatSettings>
-      <UsingsSettings />
+      <UsingsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </UsingsSettings>
       <Naming2>
         <ExceptionName IsNull="False">
@@ -784,193 +814,247 @@
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
+        <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
+        <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
+        <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
+        <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
       </Naming2>
-      <CustomMemberReorderingPatterns><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
-
-<!--
-I. Overall
-
-I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used 
-I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries
-I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared
-I.4 The contents of each entry is sorted by given keys (First key is primary,  next key is secondary, etc). Then the declarations are grouped and en-regioned by given property
-
-II. Available match operands
-
-Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'.
-The default weight is 1
-
-II.1 Boolean functions:
-II.1.1 <And>....</And>
-II.1.2 <Or>....</Or>
-II.1.3 <Not>....</Not>
-
-II.2 Operands
-II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member
-II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression
-II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression
-II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private
-II.2.5 <Static/>
-II.2.6 <Abstract/>
-II.2.7 <Virtual/>
-II.2.8 <Override/>
-II.2.9 <Sealed/>
-II.2.10 <Readonly/>
-II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression
-II.2.12 <HandlesEvent />
--->
-
-<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
-
-  <!--Do not reorder COM interfaces and structs marked by StructLayout attribute-->
-  <Pattern>
-    <Match>
-      <Or Weight="100">
-        <And>
-          <Kind Is="interface"/>
-          <Or>
-            <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
-            <HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/>
-          </Or>
-        </And>
-        <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
-      </Or>
-    </Match>
-  </Pattern>
-
-  <!--Special formatting of NUnit test fixture-->
-  <Pattern RemoveAllRegions="true">
-    <Match>
-      <And Weight="100">
-        <Kind Is="class"/>
-        <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/>
-      </And>
-    </Match>
-
-    <!--Setup/Teardow-->
-    <Entry>
-      <Match>
-        <And>
-          <Kind Is="method"/>
-          <Or>
-            <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.FixtureSetUpAttribute" Inherit="true"/>
-            <HasAttribute CLRName="NUnit.Framework.FixtureTearDownAttribute" Inherit="true"/>
-          </Or>
-        </And>
-      </Match>
-    </Entry>
-    
-    <!--All other members-->
-    <Entry/>
-    
-    <!--Test methods-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Kind Is="method"/>
-          <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-  </Pattern>
-
-  <!--Default pattern-->
-  <Pattern>
-
-    <!--public delegate-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Access Is="public"/>
-          <Kind Is="delegate"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-    
-    <!--public enum-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Access Is="public"/>
-          <Kind Is="enum"/>
-        </And>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-
-    <!--fields and constants-->
-    <Entry>
-      <Match>
-        <Or>
-          <Kind Is="constant"/>
-          <Kind Is="field"/>
-        </Or>
-      </Match>
-      <Sort>
-        <Kind Order="constant field"/>
-        <Static/>
-        <Readonly/>
-        <Name/>
-      </Sort>
-    </Entry>
-
-    <!--Constructors. Place static one first-->
-    <Entry>
-      <Match>
-        <Kind Is="constructor"/>
-      </Match>
-      <Sort>
-        <Static/>
-      </Sort>
-    </Entry>
-    
-    <!--properties, indexers-->
-    <Entry>
-      <Match>
-        <Or>
-          <Kind Is="property"/>
-          <Kind Is="indexer"/>
-        </Or>
-      </Match>
-    </Entry>
-    
-    <!--interface implementations-->
-    <Entry>
-      <Match>
-        <And Weight="100">
-          <Kind Is="member"/>
-          <ImplementsInterface/>
-        </And>
-      </Match>
-      <Sort>
-        <ImplementsInterface Immediate="true"/>
-      </Sort>
-    </Entry>
-    
-    <!--all other members-->
-    <Entry/>
-    
-    <!--nested types-->
-    <Entry>
-      <Match>
-        <Kind Is="type"/>
-      </Match>
-      <Sort>
-        <Name/>
-      </Sort>
-    </Entry>
-  </Pattern>
-  
-</Patterns>
-]]></CustomMemberReorderingPatterns>
+      <CustomMemberReorderingPatterns><![CDATA[<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
+
+    <!-- Do not reorder COM interfaces -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Kind Is="interface"/>
+                <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"
+                              Inherit="true"/>
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- Do not reorder P/Invoke structs -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Or>
+                    <Kind Is="struct"/>
+                    <Kind Is="class"/>
+                </Or>
+                <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"
+                              Inherit="true"/>
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- Do not reorder P/Invoke classes (called xxxNativeMethods) -->
+    <Pattern>
+        <Match>
+            <And Weight="2000">
+                <Kind Is="class"/>
+                <Name Is=".*NativeMethods" />
+            </And>
+        </Match>
+    </Pattern>
+
+    <!-- StyleCop pattern -->
+    <Pattern RemoveAllRegions="true">
+        <Match>
+            <Or Weight="1000" >
+                <Kind Is="class" />
+                <Kind Is="struct" />
+            </Or>
+        </Match>
+
+        <!-- constants and fields -->
+        <Entry>
+            <Match>
+                <Or>
+                    <Kind Is="constant"/>
+                    <Kind Is="field"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Kind Order="constant field"/>
+                <Readonly/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- constructors -->
+        <Entry>
+            <Match>
+                <Or Weight="200">
+                    <Kind Is="constructor"/>
+                    <Kind Is="destructor"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Static/>
+                <Kind Order="constructor destructor"/>
+                <Access Order="public internal protected-internal protected private"/>
+            </Sort>
+        </Entry>
+
+        <!-- delegates and events -->
+        <Entry>
+            <Match>
+                <Or>
+                    <Kind Is="delegate"/>
+                    <Kind Is="event"/>
+                </Or>
+            </Match>
+            <Sort>
+                <Kind Order="delegate event"/>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- enum -->
+        <Entry>
+            <Match>
+                <Kind Is="enum"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- interfaces -->
+        <Entry>
+            <Match>
+                <Kind Is="interface" />
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- properties -->
+        <Entry>
+            <Match>
+                <Kind Is="property"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- indexers -->
+        <Entry>
+            <Match>
+                <Kind Is="indexer"
+                      Weight="300" />
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- operator -->
+        <Entry>
+            <Match>
+                <Kind Is="operator"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private" />
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- public methods -->
+        <Entry>
+            <Match>
+                <And>
+                    <Kind Is="method"/>
+                    <Access Is="public"/>
+                </And>
+            </Match>
+            <Sort>
+                <Access Order="public"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Implemented Interfaces -->
+        <Entry>
+            <Match>
+                <And Weight="500">
+                    <Kind Is="method"/>
+                    <ImplementsInterface CLRName=".*"/>
+                </And>
+            </Match>
+            <Sort>
+                <ImplementsInterface />
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- other methods -->
+        <Entry>
+            <Match>
+                <Kind Is="method"/>
+            </Match>
+            <Sort>
+                <Access Order="public internal protected-internal protected private"/>
+                <Static/>
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Event handlers -->
+        <Entry>
+            <Match>
+                <HandlesEvent Weight="400" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Override/>
+                <Name/>
+            </Sort>
+        </Entry>
+        <!-- Nested structs -->
+        <Entry>
+            <Match>
+                <Kind Is="struct"
+                      Weight="600" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- Nested classes -->
+        <Entry>
+            <Match>
+                <Kind Is="class"
+                      Weight="700" />
+            </Match>
+            <Sort>
+                <Static />
+                <Access Order="public internal protected-internal protected private" />
+                <Name/>
+            </Sort>
+        </Entry>
+
+        <!-- all other members -->
+        <Entry/>
+
+    </Pattern>
+</Patterns>]]></CustomMemberReorderingPatterns>
     </CSharp>
     <VB>
@@ -978,5 +1062,9 @@
         <INDENT_SIZE>4</INDENT_SIZE>
       </FormatSettings>
-      <ImportsSettings />
+      <ImportsSettings>
+        <KeepImports IsNull="False">
+          <Item>System</Item>
+        </KeepImports>
+      </ImportsSettings>
       <Naming2 />
     </VB>
@@ -990,5 +1078,5 @@
       <PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="LocalConstants" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
       <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
@@ -999,6 +1087,7 @@
       <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
       <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
-      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
+      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateStaticReadonly" />
+      <Abbreviation Text="OK" />
     </Naming2>
   </CodeStyleSettings>
Index: /trunk/reports/nunit/.xml
===================================================================
--- /trunk/reports/nunit/.xml	(revision 420)
+++ /trunk/reports/nunit/.xml	(revision 431)
@@ -1,1956 +1,381 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!--This file represents the results of running a test suite-->
-<test-results name="C:\src\caff\openrasta\trunk\bin\tmp\Release\net-35\OpenRasta.Tests.Unit\OpenRasta.Tests.Unit.dll" total="565" errors="0" failures="1" not-run="30" inconclusive="0" ignored="4" skipped="0" invalid="26" date="2009-11-20" time="14:31:14">
+<test-results name="C:\src\caff\openrasta\trunk\bin\tmp\Release\net-20\OpenBastard.TestRunner\OpenBastard.TestRunner.dll" total="45" errors="10" failures="14" not-run="0" inconclusive="0" ignored="0" skipped="0" invalid="0" date="2010-02-18" time="11:44:15">
   <environment nunit-version="2.5.1.9189" clr-version="2.0.50727.4927" os-version="Microsoft Windows NT 6.1.7100.0" platform="Win32NT" cwd="C:\src\caff\openrasta\trunk\build" machine-name="CHERENKOV" user="sebastien.lambla" user-domain="CAFFEINEIT" />
   <culture-info current-culture="en-GB" current-uiculture="en-US" />
-  <test-suite name="C:\src\caff\openrasta\trunk\bin\tmp\Release\net-35\OpenRasta.Tests.Unit\OpenRasta.Tests.Unit.dll" executed="True" success="False" time="5.560" asserts="0">
+  <test-suite name="C:\src\caff\openrasta\trunk\bin\tmp\Release\net-20\OpenBastard.TestRunner\OpenBastard.TestRunner.dll" executed="True" success="False" time="45.238" asserts="0">
     <results>
-      <test-suite name="Accessors_Specification" executed="True" success="True" time="0.382" asserts="0">
-        <results>
-          <test-suite name="IType_context" executed="False">
-            <reason>
-              <message><![CDATA[IType_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_accessing_methods" executed="True" success="True" time="0.231" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_accessing_methods.a_method_defined_in_the_base_type_has_the_correct_base_type_owner" executed="True" success="True" time="0.157" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_methods.a_method_has_the_correct_parameter_name" executed="True" success="True" time="0.023" asserts="4" />
-              <test-case name="Accessors_Specification.when_accessing_methods.a_method_name_search_is_case_insensitive" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_methods.all_the_methods_are_found" executed="True" success="True" time="0.020" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_accessing_properties_by_name" executed="True" success="True" time="0.093" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.a_nested_property_is_returned" executed="True" success="True" time="0.020" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.a_property_is_returned" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.a_property_on_the_result_of_an_indexer_is_found" executed="True" success="True" time="0.036" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.a_wongly_formatted_property_returns_nothing" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.an_indexer_for_a_type_without_an_indexer_returns_nothing" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.an_indexer_is_found_and_recognized" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.an_unknown_nested_property_returns_nothing" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.an_unkown_property_returns_nothing" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.can_successfully_assign_a_property" executed="True" success="True" time="0.014" asserts="2" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.cannot_set_value_for_a_readonly_property" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.the_case_is_ignored" executed="True" success="True" time="0.013" asserts="1" />
-              <test-case name="Accessors_Specification.when_accessing_properties_by_name.the_name_is_the_name_of_the_property" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_types_from_the_type_system" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_building_types_from_the_type_system.the_instance_cannot_be_null" executed="True" success="True" time="0.003" asserts="0" />
-              <test-case name="Accessors_Specification.when_building_types_from_the_type_system.the_type_cannot_be_null" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_comparing_types" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_comparing_types.a_type_compared_to_a_null_results_in_minus_one" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_comparing_types.two_types_not_in_an_inheritance_hierarchy_compare_to_minus_one" executed="True" success="True" time="0.003" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_types" executed="True" success="True" time="0.018" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_creating_types.a_reference_type_can_be_assigned_a_null_value" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.a_reflection_type_cannot_be_equal_to_null" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.a_type_can_be_created" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Accessors_Specification.when_creating_types.a_type_creation_resulting_in_a_failure_doesnt_get_created" executed="True" success="True" time="0.007" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.a_value_type_cannot_be_assigned_a_null_value" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.an_incorrect_type_cannot_be_assigned" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.interfaces_cannot_be_initialized" executed="False">
-                <reason>
-                  <message><![CDATA[]]></message>
-                </reason>
-              </test-case>
-              <test-case name="Accessors_Specification.when_creating_types.the_name_is_the_type_name" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Accessors_Specification.when_creating_types.two_reflection_based_types_are_equal_if_built_from_the_same_native_type" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="Accessors_Specification.when_creating_types.two_reflection_based_types_are_not_equal_if_built_from_different_native_types" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_testing_if_a_member_is_assignable_to_another" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="Accessors_Specification.when_testing_if_a_member_is_assignable_to_another.a_type_is_assingable_to_a_parent_type" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Accessors_Specification.when_testing_if_a_member_is_assignable_to_another.a_type_is_not_assignable_to_a_type_not_in_its_inheritance_hierarchy" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ApplicationOctetStreamCodec_Specification" executed="True" success="True" time="0.455" asserts="0">
-        <results>
-          <test-suite name="applicationoctetstream_context" executed="False">
-            <reason>
-              <message><![CDATA[applicationoctetstream_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_converting_a_byte_stream_to_an_ifile" executed="True" success="True" time="0.404" asserts="0">
-            <results>
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_ifile.an_ifile_object_is_generated" executed="True" success="True" time="0.385" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_ifile.an_ireceivedfile_object_is_generated" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_ifile.the_file_name_is_null_if_no_content_disposition_header_is_present" executed="True" success="True" time="0.006" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_ifile.the_length_is_set_to_the_proper_value" executed="True" success="True" time="0.004" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_ifile.the_original_name_is_set_when_present_in_the_content_disposition_header" executed="True" success="True" time="0.003" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_converting_a_byte_stream_to_an_instance_of_a_stream" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_a_byte_stream_to_an_instance_of_a_stream.the_stream_length_is_set_to_the_size_of_the_sent_byte_stream" executed="True" success="True" time="0.002" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_converting_an_ifile_to_a_byte_stream" executed="True" success="True" time="0.044" asserts="0">
-            <results>
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_downloadable_file_with_name_generates_a_content_disposition" executed="True" success="True" time="0.016" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_downloadable_file_without_name_generates_a_content_disposition" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_with_a_content_type_generates_the_correct_content_type_header" executed="True" success="True" time="0.005" asserts="1" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_with_a_content_type_of_app_octet_stream_doesnt_override_response_content_type" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_with_a_more_specific_content_type_overrides_the_response_content_type" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_with_a_name_generates_an_inline_content_disposition" executed="True" success="True" time="0.002" asserts="3" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_without_a_content_type_generates_an_app_octet_stream_content_type" executed="True" success="True" time="0.005" asserts="1" />
-              <test-case name="ApplicationOctetStreamCodec_Specification.when_converting_an_ifile_to_a_byte_stream.a_file_without_name_doesnt_generate_a_header" executed="True" success="True" time="0.003" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ApplicationXWwwUrlformEncodedCodec_Specification" executed="True" success="True" time="0.184" asserts="0">
-        <results>
-          <test-suite name="app_www_context" executed="False">
-            <reason>
-              <message><![CDATA[app_www_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_parsing_for_complex_types" executed="True" success="True" time="0.112" asserts="0">
-            <results>
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_complex_types.multiple_values_for_a_non_array_type_are_ignored" executed="True" success="True" time="0.081" asserts="6" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_complex_types.the_changeset_type_is_built_from_key_value_pairs" executed="True" success="True" time="0.021" asserts="5" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_complex_types.the_complex_type_is_built_from_a_simple_value" executed="True" success="True" time="0.004" asserts="3" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_complex_types.the_complex_type_is_built_from_key_value_pairs" executed="True" success="True" time="0.004" asserts="12" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_complex_types.the_complex_type_is_built_when_referenced_by_name" executed="True" success="True" time="0.002" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_parsing_for_simple_types" executed="True" success="True" time="0.065" asserts="0">
-            <results>
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_simple_types.integers_are_assigned" executed="True" success="True" time="0.044" asserts="3" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_simple_types.string_arrays_are_assigned" executed="True" success="True" time="0.004" asserts="3" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_simple_types.strings_are_assigned" executed="True" success="True" time="0.011" asserts="4" />
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_parsing_for_simple_types.url_encoding_is_resolved" executed="True" success="True" time="0.003" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_the_requested_type_is_a_dictionary" executed="True" success="True" time="0.005" asserts="0">
-            <results>
-              <test-case name="ApplicationXWwwUrlformEncodedCodec_Specification.when_the_requested_type_is_a_dictionary.the_values_are_returned" executed="True" success="True" time="0.004" asserts="4" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="BoundaryStreamReader_Specification" executed="True" success="True" time="0.093" asserts="0">
-        <results>
-          <test-suite name="when_reading_a_boundary_type_from_a_stream" executed="True" success="True" time="0.091" asserts="0">
-            <results>
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_boundary_starting_at_the_beginning_of_the_stream_with_a_crlf_is_processed_correctly" executed="True" success="True" time="0.013" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_boundary_starting_at_the_beginning_of_the_stream_without_a_crlf_is_processed_correctly" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_boundary_stream_defaults_to_ASCII_encoding" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_boundary_with_whitepaces_at_the_end_is_supported" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_line_is_read_and_the_stream_position_is_readjusted" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_stream_without_boundaries_and_with_crlf_is_returned_in_full" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_stream_without_boundaries_is_returned_in_full" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.a_truncated_read_will_continue_reading_and_parse_the_content" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.an_unrecognized_boundary_is_correctly_ignored" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.building_a_boundary_stream_reader_necessitates_a_non_null_stream" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.building_a_boundary_stream_reader_necessitates_a_seekable_stream" executed="True" success="True" time="0.011" asserts="0" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.read_line_followed_by_full_read_followed_by_read_line_reads_a_line_the_rest_of_the_part_and_the_line_of_the_next_part" executed="True" success="True" time="0.004" asserts="4" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.reading_a_part_completely_and_seeking_skips_the_second_part" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.reading_a_second_part_after_a_partially_read_first_part_results_in_the_correct_text" executed="True" success="True" time="0.023" asserts="2" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.reading_over_truncated_values_doesnt_corrupt_the_stream" executed="True" success="True" time="0.015" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.skipping_to_the_next_part_seeks_the_stream_to_the_beginning_of_the_first_part" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.skipping_twice_reads_the_thrid_entity" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.the_buffer_of_the_reader_must_be_big_enough_to_seek_for_a_boundary" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.the_content_is_read_until_the_boundary_is_reached" executed="True" success="True" time="0.004" asserts="41" />
-              <test-case name="BoundaryStreamReader_Specification.when_reading_a_boundary_type_from_a_stream.when_a_substream_is_open_reading_a_line_closes_the_previous_stream_and_moves_to_the_next_part" executed="True" success="True" time="0.001" asserts="4" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ByteArrayExtension_Specification" executed="True" success="True" time="0.004" asserts="0">
-        <results>
-          <test-suite name="when_matching_byte_sequences" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="ByteArrayExtension_Specification.when_matching_byte_sequences.a_full_match_returns_the_correct_index" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="ByteArrayExtension_Specification.when_matching_byte_sequences.a_match_at_the_beginning_returns_the_correct_index" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="ByteArrayExtension_Specification.when_matching_byte_sequences.a_partial_match_returns_the_beginning_of_the_match" executed="True" success="True" time="0.000" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="CodecMatch_Specification" executed="True" success="True" time="0.010" asserts="0">
-        <results>
-          <test-suite name="when_sorting_codec_matches" executed="True" success="True" time="0.010" asserts="0">
-            <results>
-              <test-case name="CodecMatch_Specification.when_sorting_codec_matches.a_null_value_is_never_at_the_top_of_the_list" executed="True" success="True" time="0.004" asserts="1" />
-              <test-case name="CodecMatch_Specification.when_sorting_codec_matches.the_highest_score_wins" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="CodecMatch_Specification.when_sorting_codec_matches.when_score_and_param_matching_are_the_same_the_highest_quality_is_selected" executed="True" success="True" time="0.004" asserts="1" />
-              <test-case name="CodecMatch_Specification.when_sorting_codec_matches.when_score_is_the_same_the_highest_matching_parameters_is_selected" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="CodecRepository_Specification" executed="True" success="True" time="0.091" asserts="0">
-        <results>
-          <test-suite name="codec_repository_context" executed="False">
-            <reason>
-              <message><![CDATA[codec_repository_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_registering_a_codec" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="CodecRepository_Specification.when_registering_a_codec.the_same_codec_can_be_registered_for_several_content_types" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="CodecRepository_Specification.when_registering_a_codec.the_same_codec_can_be_registered_for_several_resource_types" executed="True" success="True" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_searching_for__media_type_reader" executed="True" success="True" time="0.046" asserts="0">
-            <results>
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_codec_for_a_parent_resource_type_is_found" executed="True" success="True" time="0.035" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_codec_for_a_parent_resource_type_with_strict_marker_is_not_found" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_codec_for_the_exact_resource_type_is_found" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_codec_that_is_not_registered_for_all_resource_types_is_not_selected" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_wildcard_codec_is_not_selected_wheN_another_codec_has_matching_media_type" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_wildcard_codec_is_selected_if_the_destination_type_is_closest_to_the_param_type" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.a_wildcard_selects_the_codec_with_the_highest_quality" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.the_codec_with_the_highest_quality_is_selected" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.the_most_specific_codec_for_a_resource_type_is_found" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for__media_type_reader.the_most_specific_codec_is_found_when_matching_against_several_resource_types" executed="False">
-                <reason>
-                  <message><![CDATA[]]></message>
-                </reason>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_searching_for_content_type_writers_for_a_media_type" executed="True" success="True" time="0.040" asserts="0">
-            <results>
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.generic_types_are_found" executed="True" success="True" time="0.023" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.inherited_types_are_found" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.interface_types_are_found" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.matching_is_done_against_parent_interfaces" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.object_registrations_are_found_for_interfaces" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.only_codecs_for_a_compatible_mime_type_are_selected" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.the_closest_matching_type_is_selected" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="CodecRepository_Specification.when_searching_for_content_type_writers_for_a_media_type.the_server_quality_is_used_in_prioritizing_the_negotiated_media_type" executed="True" success="True" time="0.010" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="CollectionExtensions_Specification" executed="True" success="True" time="0.004" asserts="0">
-        <results>
-          <test-suite name="when_converting_to_nvc" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="CollectionExtensions_Specification.when_converting_to_nvc.method_name" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="CollectionExtensions_Specification.when_converting_to_nvc.passing_a_null_ojbect_results_in_an_error" executed="True" success="True" time="0.003" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Configuration_Specification" executed="True" success="True" time="0.101" asserts="0">
-        <results>
-          <test-suite name="configuration_context" executed="False">
-            <reason>
-              <message><![CDATA[configuration_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_registering_codecs" executed="True" success="True" time="0.043" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registering_codecs.can_add_a_codec_by_type" executed="True" success="True" time="0.020" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_add_a_codec_by_type_instance" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_add_a_codec_configuration" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_add_a_specific_media_type_for_a_codec" executed="True" success="True" time="0.004" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_register_an_extension_on_mediatype" executed="True" success="True" time="0.004" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_register_multiple_codecs_with_multiple_media_types_and_multiple_extensions" executed="True" success="True" time="0.003" asserts="10" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_register_multiple_extensions_on_multiple_mediatypes" executed="True" success="True" time="0.002" asserts="4" />
-              <test-case name="Configuration_Specification.when_registering_codecs.can_register_two_media_types" executed="True" success="True" time="0.002" asserts="4" />
-              <test-case name="Configuration_Specification.when_registering_codecs.cannot_register_codec_not_implementing_icodec" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_custom_dependency" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registering_custom_dependency.a_dependency_registration_is_added_to_the_metamodel" executed="True" success="True" time="0.003" asserts="5" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_resources" executed="True" success="True" time="0.006" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_by_generic_type_is_registered" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_by_name_is_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_by_type_is_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_of_type_strict_is_registered_as_a_strict_type" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_with_any_key_is_registered" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_resources.a_resource_with_IType_is_registered" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_resources.cannot_execute_registration_on_null_IHas" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Configuration_Specification.when_registering_resources.cannot_register_a_resource_with_a_null_key" executed="True" success="True" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_uri_decorators" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registering_uri_decorators.a_dependency_is_added_to_the_meta_model" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_uris" executed="True" success="True" time="0.036" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registering_uris.a_null_language_defaults_to_the_inviariant_culture" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_uris.a_resource_can_be_registered_with_no_uri" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_uris.a_uri_is_registered" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Configuration_Specification.when_registering_uris.a_uri_language_is_registered" executed="True" success="True" time="0.017" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_uris.a_uri_name_is_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Configuration_Specification.when_registering_uris.can_register_multiple_uris_for_a_resource" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="Configuration_Specification.when_registering_uris.cannot_register_a_uri_then_without_a_uri" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Configuration_Specification.when_registering_uris.lcannot_register_a_null_uri_for_a_resource" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registring_handlers_for_resources_with_URIs" executed="True" success="True" time="0.006" asserts="0">
-            <results>
-              <test-case name="Configuration_Specification.when_registring_handlers_for_resources_with_URIs.a_handler_from_generic_type_is_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Configuration_Specification.when_registring_handlers_for_resources_with_URIs.a_handler_from_itype_is_registered" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="Configuration_Specification.when_registring_handlers_for_resources_with_URIs.a_handler_from_type_instance_is_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Configuration_Specification.when_registring_handlers_for_resources_with_URIs.cannot_add_a_null_handler" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Configuration_Specification.when_registring_handlers_for_resources_with_URIs.two_handlers_can_be_added" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="DefaultBinderLocator_Specification" executed="True" success="True" time="0.427" asserts="0">
-        <results>
-          <test-suite name="when_building_binders_from_static_methods" executed="True" success="True" time="0.427" asserts="0">
-            <results>
-              <test-case name="DefaultBinderLocator_Specification.when_building_binders_from_static_methods.the_binder_is_created_correctly" executed="True" success="True" time="0.426" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="DependencyManager_Specification" executed="True" success="True" time="0.004" asserts="0">
-        <results>
-          <test-suite name="when_resolving_services" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="DependencyManager_Specification.when_resolving_services.resolving_a_dependency_when_there_is_no_resolver_raises_an_exception" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="DependencyManager_Specification.when_resolving_services.resolving_a_null_dependency_returns_null" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="DeterministicStreamWriter_Specification" executed="True" success="True" time="0.003" asserts="0">
-        <results>
-          <test-suite name="when_not_owning_a_stream" executed="True" success="True" time="0.000" asserts="0">
-            <results>
-              <test-case name="DeterministicStreamWriter_Specification.when_not_owning_a_stream.the_stream_is_not_closed_when_the_writer_is_closed" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_owning_a_stream" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="DeterministicStreamWriter_Specification.when_owning_a_stream.the_stream_is_closed_when_the_writer_is_closed" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="DigestCredentialsReader_Specification" executed="True" success="True" time="0.250" asserts="0">
-        <results>
-          <test-suite name="when_a_header_is_present" executed="True" success="True" time="0.234" asserts="0">
-            <results>
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.a_non_absolute_digest_uri_for_an_absolute_request_should_fail" executed="False">
-                <reason>
-                  <message><![CDATA[]]></message>
-                </reason>
-              </test-case>
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_content_of_the_header_is_parsed" executed="True" success="True" time="0.008" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_parsing_returns_null_if_the_authentication_is_not_digest" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_authorized_for_incoming_uri_containing_invalid_characters" executed="True" success="True" time="0.194" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_authorized_if_everything_matches" executed="True" success="True" time="0.015" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_authorized_if_sent_with_absolute_uri" executed="True" success="True" time="0.003" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_not_authorized_if_the_passwords_dont_match" executed="True" success="True" time="0.004" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_not_authorized_if_the_request_uri_and_digest_header_uri_do_not_natch" executed="True" success="True" time="0.003" asserts="2" />
-              <test-case name="DigestCredentialsReader_Specification.when_a_header_is_present.the_result_is_not_authorized_if_the_username_doesnt_match" executed="True" success="True" time="0.002" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_no_header_is_present" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="DigestCredentialsReader_Specification.when_no_header_is_present.the_pipeline_continues_executing" executed="True" success="True" time="0.009" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_the_authentication_failed" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="DigestCredentialsReader_Specification.when_the_authentication_failed.the_correct_response_is_returned" executed="True" success="True" time="0.002" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Element_Specification" executed="True" success="True" time="0.021" asserts="0">
-        <results>
-          <test-suite name="when_writing_attributes_with_values_requiring_encoding" executed="True" success="True" time="0.020" asserts="0">
-            <results>
-              <test-case name="Element_Specification.when_writing_attributes_with_values_requiring_encoding.the_values_are_encoded_according_to_the_html_specification" executed="True" success="True" time="0.020" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ElementExtensions_Specification" executed="True" success="True" time="0.061" asserts="0">
-        <results>
-          <test-suite name="when_setting_classes" executed="True" success="True" time="0.055" asserts="0">
-            <results>
-              <test-case name="ElementExtensions_Specification.when_setting_classes.the_class_attribute_is_serialized_for_a_single_value" executed="True" success="True" time="0.053" asserts="0" />
-              <test-case name="ElementExtensions_Specification.when_setting_classes.the_class_attribute_is_serialized_for_multiple_chained_values" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="ElementExtensions_Specification.when_setting_classes.the_class_property_contains_independent_values_when_added_as_one_string" executed="True" success="True" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_setting_the_id_property" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="ElementExtensions_Specification.when_setting_the_id_property.the_attribute_is_not_generated_when_id_is_null" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="ElementExtensions_Specification.when_setting_the_id_property.the_attribute_is_set_to_the_correct_value" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ExpressionTreeXHtmlProducer_Specification" executed="True" success="True" time="0.384" asserts="0">
-        <results>
-          <test-suite name="when_building_checkboxes" executed="True" success="True" time="0.161" asserts="0">
-            <results>
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_checkboxes.a_checkbox_has_the_value_specified_in_the_property" executed="True" success="True" time="0.160" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_forms" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_forms.the_form_tag_is_written_for_the_correct_resource_uri" executed="True" success="True" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_select" executed="True" success="True" time="0.147" asserts="0">
-            <results>
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_select.a_dictionary_is_rendered_as_options" executed="True" success="True" time="0.108" asserts="6" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_select.a_nullable_enum_property_sets_to_null_selects_an_empty_option_element_in_first_position" executed="True" success="True" time="0.027" asserts="4" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_select.an_enum_property_gets_enumeration_values_set" executed="True" success="True" time="0.011" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_textboxes" executed="True" success="True" time="0.046" asserts="0">
-            <results>
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes.null_values_are_propagated" executed="True" success="True" time="0.007" asserts="1" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes.the_correct_html_fragment_is_generated" executed="True" success="True" time="0.008" asserts="0" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes.the_property_name_is_written_correctly" executed="True" success="True" time="0.006" asserts="1" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes.the_property_type_is_set_to_text" executed="True" success="True" time="0.005" asserts="1" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes.the_property_value_is_written_correctly" executed="True" success="True" time="0.011" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_textboxes_based_on_types" executed="True" success="True" time="0.025" asserts="0">
-            <results>
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes_based_on_types.a_reference_type_property_is_identified_correctly" executed="True" success="True" time="0.018" asserts="1" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes_based_on_types.a_reference_type_property_is_identified_correctly_on_password" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="ExpressionTreeXHtmlProducer_Specification.when_building_textboxes_based_on_types.a_value_type_property_is_identified_correctly" executed="True" success="True" time="0.003" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="xhtml_context" executed="False">
-            <reason>
-              <message><![CDATA[xhtml_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ExtensibleCompiler_Specification" executed="True" success="True" time="0.003" asserts="0">
-        <results>
-          <test-suite name="when_dependency_manager_is_not_available" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="ExtensibleCompiler_Specification.when_dependency_manager_is_not_available.there_are_no_snippet_modifiers" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Extensions_Specification" executed="True" success="True" time="0.057" asserts="0">
-        <results>
-          <test-suite name="when_calculating_inheritance_distances" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.a_parent_type_has_an_inheritance_distance_of_minus_one_to_a_child_type" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.a_type_implementing_an_interface_has_a_distance_of_0_to_that_interface" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.an_interface_has_a_distance_of_minus_one_to_a_concrete_type" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.an_interface_has_a_distance_of_minus_one_to_an_interface_it_doesnt_implement" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.an_interface_has_a_distance_of_one_to_object" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.any_type_has_a_distance_of_zero_to_itself" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.comparing_to_a_type_not_in_the_inheritance_tree_returns_minus_one" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_calculating_inheritance_distances.primitive_types_return_one" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_converting_to_string" executed="True" success="True" time="0.006" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_converting_to_string.non_primitive_types_without_converters_return_the_result_of_ToString" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Extensions_Specification.when_converting_to_string.primitive_types_return_the_converted_value" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_converting_to_string.types_with_converters_return_the_coverter_value" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_instances_from_strings" executed="True" success="True" time="0.033" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.array_types_are_parsed" executed="True" success="True" time="0.004" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.arrays_of_strings_return_the_provided_values" executed="True" success="True" time="0.000" asserts="4" />
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.lists_are_parsed" executed="True" success="True" time="0.019" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.non_array_types_are_not_parsed_if_there_are_multiple_values" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.non_array_types_are_parsed_if_theres_one_value" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Extensions_Specification.when_creating_instances_from_strings.types_implementing_ICollection_of_T_are_parsed" executed="True" success="True" time="0.005" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_type_string_for_simple_types" executed="True" success="True" time="0.005" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_creating_type_string_for_simple_types.instance_results_in_typestring_for_the_instance_type" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_type_string_for_simple_types.nested_types_use_the_dot_syntax" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_type_string_for_simple_types.null_types_result_in_an_error" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Extensions_Specification.when_creating_type_string_for_simple_types.the_name_without_the_namespace_is_returned" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_type_strings_for_generic_types" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_creating_type_strings_for_generic_types.generic_type_strings_are_defined_with_parenthesis" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_type_strings_for_generic_types.generic_types_that_are_not_constructed_do_not_have_a_typestring" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="Extensions_Specification.when_creating_type_strings_for_generic_types.nested_generic_type_uses_the_generics_syntax" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_creating_type_strings_for_generic_types.recursive_generic_types_use_the_generic_syntax" executed="False">
-                <reason>
-                  <message><![CDATA[Need to understand how the generics reflection api works first.]]></message>
-                </reason>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_generating_default_values" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="Extensions_Specification.when_generating_default_values.reference_types_return_null" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Extensions_Specification.when_generating_default_values.value_types_return_a_default_instance" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="FormElement_Specification" executed="True" success="True" time="0.051" asserts="0">
-        <results>
-          <test-suite name="markup_element_context&lt;TMarkupElement&gt;" executed="True" success="False" time="0.000" asserts="0" />
-          <test-suite name="when_generating_the_form_tag" executed="True" success="True" time="0.049" asserts="0">
-            <results>
-              <test-case name="FormElement_Specification.when_generating_the_form_tag.multiple_media_types_in_accept_results_in_a_comma_separated_list" executed="True" success="True" time="0.008" asserts="0" />
-              <test-case name="FormElement_Specification.when_generating_the_form_tag.non_html_methods_are_not_allowed_without_the_url_modifier_in_place" executed="True" success="True" time="0.005" asserts="0" />
-              <test-case name="FormElement_Specification.when_generating_the_form_tag.non_html_methods_are_rendered_as_url_modifiers_when_the_uri_decorator_is_active" executed="True" success="True" time="0.031" asserts="0" />
-              <test-case name="FormElement_Specification.when_generating_the_form_tag.the_default_method_is_get" executed="True" success="True" time="0.004" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HandlerMethodFiltersInvoker_Specification" executed="True" success="False" time="0.001" asserts="0">
-        <results>
-          <test-suite name="when_a_filter_is_present" executed="False">
-            <reason>
-              <message><![CDATA[when_a_filter_is_present does not have any tests]]></message>
-            </reason>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HandlerRepository_Specification" executed="True" success="False" time="0.001" asserts="0">
-        <results>
-          <test-suite name="when_adding_handler_types" executed="False">
-            <reason>
-              <message><![CDATA[when_adding_handler_types does not have any tests]]></message>
-            </reason>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HandlerResolver_Specification" executed="True" success="True" time="0.026" asserts="0">
-        <results>
-          <test-suite name="when_a_handler_is_found" executed="True" success="True" time="0.020" asserts="0">
-            <results>
-              <test-case name="HandlerResolver_Specification.when_a_handler_is_found.the_handler_types_are_assigned_to_the_correct_collection" executed="True" success="True" time="0.020" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_no_handler_is_found" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="HandlerResolver_Specification.when_no_handler_is_found.the_resource_handler_is_not_defined_and_the_pipeline_continues" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HistoryStream_Specification" executed="True" success="True" time="0.015" asserts="0">
-        <results>
-          <test-suite name="when_wrapping_a_stream_in_a_HistoryStream" executed="True" success="True" time="0.015" asserts="0">
-            <results>
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.a_read_followed_by_a_backward_seek_will_rehydrate_data_correctly_on_the_next_read" executed="True" success="True" time="0.005" asserts="5" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.reading_cached_data_doesnt_change_the_underlying_stream_poisition" executed="True" success="True" time="0.001" asserts="7" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.seeking_back_further_than_the_buffer_current_size_will_throw" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.seeking_back_further_than_the_buffer_maximum_size_will_throw" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.seeking_from_another_origin_than_current_will_throw" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.the_default_stream_has_a_buffer_of_4096_bytes" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="HistoryStream_Specification.when_wrapping_a_stream_in_a_HistoryStream.the_memory_stream_is_read_only_and_seekable" executed="True" success="True" time="0.002" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HttpHeaders_Specification" executed="True" success="True" time="0.036" asserts="0">
-        <results>
-          <test-suite name="when_comparing_headers" executed="True" success="True" time="0.011" asserts="0">
-            <results>
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.different_field_names_are_not_equal" executed="True" success="True" time="0.000" asserts="3" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.fields_are_sorted_by_type" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.fields_of_the_same_type_are_sorted_by_name" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.the_field_name_is_case_insensitive" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.the_field_name_should_have_at_least_one_character" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.the_header_should_never_contain_white_space" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.the_string_representation_of_a_header_is_the_field_name_and_value" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.two_fields_are_equal_when_having_the_same_field_value" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="HttpHeaders_Specification.when_comparing_headers.two_headers_with_the_same_field_names_are_equal" executed="True" success="True" time="0.000" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="whettn_parsing_content_disposition" executed="True" success="True" time="0.023" asserts="0">
-            <results>
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.a_parameter_value_without_quotes_results_in_an_error" executed="True" success="True" time="0.014" asserts="0" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.an_empty_header_results_in_an_error" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.the_filename_parameter_is_parsed" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.the_first_value_is_the_disposition" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.the_name_parameter_is_parsed" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.the_toString_method_normalize_the_header" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="HttpHeaders_Specification.whettn_parsing_content_disposition.whitespace_in_parameters_is_ignored" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="HttpMethodOverrider_Specification" executed="True" success="True" time="0.014" asserts="0">
-        <results>
-          <test-suite name="when_the_http_method_is_overridden" executed="True" success="True" time="0.010" asserts="0">
-            <results>
-              <test-case name="HttpMethodOverrider_Specification.when_the_http_method_is_overridden.an_original_method_of_get_result_in_an_error" executed="True" success="True" time="0.006" asserts="2" />
-              <test-case name="HttpMethodOverrider_Specification.when_the_http_method_is_overridden.the_http_method_in_the_context_is_updated_for_post" executed="True" success="True" time="0.003" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_there_is_no_override_header" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="HttpMethodOverrider_Specification.when_there_is_no_override_header.the_contributor_doesnt_do_anything" executed="True" success="True" time="0.003" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="IIframeModule_Specification" executed="True" success="True" time="0.032" asserts="0">
-        <results>
-          <test-suite name="when_setting_frameborder" executed="True" success="True" time="0.015" asserts="0">
-            <results>
-              <test-case name="IIframeModule_Specification.when_setting_frameborder.the_border_is_set_to_0_when_the_attribute_value_is_false" executed="True" success="True" time="0.008" asserts="0" />
-              <test-case name="IIframeModule_Specification.when_setting_frameborder.the_border_is_set_to_1_when_the_attribute_value_is_true" executed="True" success="True" time="0.003" asserts="0" />
-              <test-case name="IIframeModule_Specification.when_setting_frameborder.the_boreder_is_not_set_by_default" executed="True" success="True" time="0.002" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_setting_scrolling" executed="True" success="True" time="0.015" asserts="0">
-            <results>
-              <test-case name="IIframeModule_Specification.when_setting_scrolling.the_scrolling_is_not_rendered_by_default" executed="True" success="True" time="0.003" asserts="0" />
-              <test-case name="IIframeModule_Specification.when_setting_scrolling.the_scrolling_is_rendered_as_yes_when_the_yes_value_is_used" executed="True" success="True" time="0.011" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Instances_Specification" executed="True" success="True" time="0.072" asserts="0">
-        <results>
-          <test-suite name="instance_context" executed="False">
-            <reason>
-              <message><![CDATA[instance_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="parameter_instance_context" executed="False">
-            <reason>
-              <message><![CDATA[parameter_instance_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_assigning_a_value_to_a_parameter_binder" executed="True" success="True" time="0.015" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_assigning_a_value_to_a_parameter_binder.the_parameter_has_a_value" executed="True" success="True" time="0.015" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_assigning_properties_to_an_existing_object" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_assigning_properties_to_an_existing_object.cannot_assign_properties_to_a_null_object" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Instances_Specification.when_assigning_properties_to_an_existing_object.the_properties_are_assigned" executed="True" success="True" time="0.002" asserts="7" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_an_object" executed="True" success="True" time="0.022" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_creating_an_object.a_type_instance_can_be_applied_twice" executed="True" success="True" time="0.001" asserts="4" />
-              <test-case name="Instances_Specification.when_creating_an_object.a_value_can_be_assigned_to_the_type_instance" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="Instances_Specification.when_creating_an_object.a_value_of_the_incorrect_type_cannot_be_assinged" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Instances_Specification.when_creating_an_object.creating_an_object_twice_returns_the_same_object" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Instances_Specification.when_creating_an_object.nested_properties_are_assigned" executed="True" success="True" time="0.002" asserts="4" />
-              <test-case name="Instances_Specification.when_creating_an_object.setting_properties_on_children_of_indexers_works_as_expected" executed="True" success="True" time="0.014" asserts="4" />
-              <test-case name="Instances_Specification.when_creating_an_object.the_properties_are_assigned" executed="True" success="True" time="0.001" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_getting_list_of_changes" executed="True" success="True" time="0.010" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_getting_list_of_changes.a_property_retrieved_but_wihtout_a_value_is_not_present_in_the_changes" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Instances_Specification.when_getting_list_of_changes.a_successfully_assigned_property_is_present_in_the_list_of_changes" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="Instances_Specification.when_getting_list_of_changes.accessing_the_indexer_with_an_unknown_key_throws" executed="True" success="True" time="0.002" asserts="0" />
-              <test-case name="Instances_Specification.when_getting_list_of_changes.the_change_list_is_readonly" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="Instances_Specification.when_getting_list_of_changes.the_keys_are_case_insensitive" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_getting_properties_by_name" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_getting_properties_by_name.a_property_retrieved_twice_retrieves_the_same_object" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Instances_Specification.when_getting_properties_by_name.a_readonly_property_is_returned_as_non_writable" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Instances_Specification.when_getting_properties_by_name.an_unknown_property_returns_null" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_not_assigning_a_value_to_a_parameter" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_not_assigning_a_value_to_a_parameter.an_optional_value_gives_the_parameter_a_value" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Instances_Specification.when_not_assigning_a_value_to_a_parameter.an_unfilled_parameter_doesnt_have_value" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_writing_propertie_values" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_writing_propertie_values.a_property_is_not_set_when_the_type_is_incompatible" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Instances_Specification.when_writing_propertie_values.a_writable_property_is_set_and_its_value_can_be_retrieved" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_writing_property_values_on_live_object" executed="True" success="True" time="0.008" asserts="0">
-            <results>
-              <test-case name="Instances_Specification.when_writing_property_values_on_live_object.a_new_instance_is_created_when_using_create" executed="True" success="True" time="0.001" asserts="5" />
-              <test-case name="Instances_Specification.when_writing_property_values_on_live_object.assigning_properties_after_the_property_got_assigned_a_parent_updates_the_parent" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Instances_Specification.when_writing_property_values_on_live_object.cannot_assign_a_null_parent_to_a_property" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="Instances_Specification.when_writing_property_values_on_live_object.cannot_assign_a_parent_twice" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="Instances_Specification.when_writing_property_values_on_live_object.no_reference_is_kept_after_a_call_to_apply" executed="True" success="True" time="0.002" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="InternalDependencyResolver_Specification" executed="True" success="True" time="0.118" asserts="0">
-        <results>
-          <test-suite name="dependency_resolver_context" executed="False">
-            <reason>
-              <message><![CDATA[InternalDependencyResolver_Specification.dependency_resolver_context is an abstract class]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_registering_dependencies" executed="False">
-            <reason>
-              <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-            </reason>
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.an_abstract_type_cannot_be_registered" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.an_interface_cannot_be_registered_as_a_concrete_implementation" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.cyclic_dependency_generates_an_error" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.parameters_are_resolved" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.registered_concrete_type_is_recognized_as_dependency_implementation" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.registering_a_concrete_type_results_in_the_type_being_registered" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.registering_a_concrete_type_with_an_unknown_dependency_lifetime_value_results_in__an_error" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.registering_a_service_type_with_an_unknown_dependency_lifetime_value_results_in__an_error" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.requesting_a_type_with_a_public_constructor_returns_a_new_instance_of_that_type" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.requesting_a_type_with_no_public_constructor_will_return_a_type_with_the_correct_dependency" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.the_constructor_with_the_most_matching_arguments_is_used" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.the_null_value_is_never_registered" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies.the_resolved_instance_is_the_same_as_the_registered_instance" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_dependencies is an abstract class]]></message>
-                </reason>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_dependencies_with_internal_dependency_resolver" executed="True" success="True" time="0.020" asserts="0">
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.an_abstract_type_cannot_be_registered" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.an_interface_cannot_be_registered_as_a_concrete_implementation" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.cyclic_dependency_generates_an_error" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.parameters_are_resolved" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.registered_concrete_type_is_recognized_as_dependency_implementation" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.registering_a_concrete_type_results_in_the_type_being_registered" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.registering_a_concrete_type_with_an_unknown_dependency_lifetime_value_results_in__an_error" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.registering_a_service_type_with_an_unknown_dependency_lifetime_value_results_in__an_error" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.requesting_a_type_with_a_public_constructor_returns_a_new_instance_of_that_type" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.requesting_a_type_with_no_public_constructor_will_return_a_type_with_the_correct_dependency" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.the_constructor_with_the_most_matching_arguments_is_used" executed="True" success="True" time="0.003" asserts="2" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.the_null_value_is_never_registered" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_dependencies_with_internal_dependency_resolver.the_resolved_instance_is_the_same_as_the_registered_instance" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_for_per_request_lifetime" executed="False">
-            <reason>
-              <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-            </reason>
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.a_dependency_registered_in_one_context_is_not_registered_in_another" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.a_type_registered_as_per_request_cannot_be_resolved_if_IContextStore_is_not_registered" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.a_type_registered_as_transient_gets_an_instance_stored_in_context_injected" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.instance_registered_as_per_request_are_cleared_when_context_store_is_terminating" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.non_instance_registrations_are_created_for_each_context_store" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.registering_instances_in_different_scopes_results_in_each_consumer_getting_the_correct_registration" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.registering_instances_in_different_scopes_results_in_only_the_context_specific_registrations_to_be_resolved_in_a_context" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime.registering_two_instances_for_the_same_type_resolves_at_least_one_entry" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime is an abstract class]]></message>
-                </reason>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_for_per_request_lifetime_with_internal_dependency_resolver" executed="True" success="True" time="0.059" asserts="0">
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.a_dependency_registered_in_one_context_is_not_registered_in_another" executed="True" success="True" time="0.035" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.a_type_registered_as_per_request_cannot_be_resolved_if_IContextStore_is_not_registered" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.a_type_registered_as_transient_gets_an_instance_stored_in_context_injected" executed="True" success="True" time="0.003" asserts="2" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.instance_registered_as_per_request_are_cleared_when_context_store_is_terminating" executed="True" success="True" time="0.008" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.non_instance_registrations_are_created_for_each_context_store" executed="True" success="True" time="0.002" asserts="2" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.registering_instances_in_different_scopes_results_in_each_consumer_getting_the_correct_registration" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.registering_instances_in_different_scopes_results_in_only_the_context_specific_registrations_to_be_resolved_in_a_context" executed="True" success="True" time="0.004" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_registering_for_per_request_lifetime_with_internal_dependency_resolver.registering_two_instances_for_the_same_type_resolves_at_least_one_entry" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_resolving_instances" executed="False">
-            <reason>
-              <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-            </reason>
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances.a_property_for_which_there_is_a_property_already_assigned_is_replaced_with_value_from_container" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances.a_property_that_would_cause_a_cyclic_dependency_is_ignored" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances.a_type_can_get_a_dependency_resolver_dependency_assigned" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances.a_type_cannot_be_created_when_its_dependencies_are_not_registered" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-                </reason>
-              </test-case>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances.an_empty_enumeration_of_unregistered_types_is_resolved" executed="False">
-                <reason>
-                  <message><![CDATA[InternalDependencyResolver_Specification.when_resolving_instances is an abstract class]]></message>
-                </reason>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_resolving_instances_with_internal_dependency_resolver" executed="True" success="True" time="0.008" asserts="0">
-            <results>
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances_with_internal_dependency_resolver.a_property_for_which_there_is_a_property_already_assigned_is_replaced_with_value_from_container" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances_with_internal_dependency_resolver.a_property_that_would_cause_a_cyclic_dependency_is_ignored" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances_with_internal_dependency_resolver.a_type_can_get_a_dependency_resolver_dependency_assigned" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances_with_internal_dependency_resolver.a_type_cannot_be_created_when_its_dependencies_are_not_registered" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="InternalDependencyResolver_Specification.when_resolving_instances_with_internal_dependency_resolver.an_empty_enumeration_of_unregistered_types_is_resolved" executed="True" success="True" time="0.001" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="IUriResolverExtensions_Specification" executed="True" success="True" time="0.152" asserts="0">
-        <results>
-          <test-suite name="templated_uri_resolver" executed="False">
-            <reason>
-              <message><![CDATA[templated_uri_resolver does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_creating_uris_for_objects" executed="True" success="True" time="0.151" asserts="0">
-            <results>
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_correct_uri_is_selected_for_a_type" executed="True" success="True" time="0.090" asserts="2" />
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_uri_cannot_be_created_from_a_null_object_instance" executed="True" success="True" time="0.003" asserts="0" />
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_uri_is_created_based_on_the_named_values_and_the_runtime_type" executed="True" success="True" time="0.011" asserts="1" />
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_uri_is_created_based_on_the_public_properties_and_the_runtime_type" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_uri_is_created_based_on_the_runtime_type_of_the_object" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="IUriResolverExtensions_Specification.when_creating_uris_for_objects.the_uri_is_created_using_contextual_base_address_from_the_context" executed="True" success="True" time="0.040" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="JsonDataContractCodec_Specification" executed="True" success="True" time="0.388" asserts="0">
-        <results>
-          <test-suite name="when_writing_a_json_representation" executed="True" success="True" time="0.387" asserts="0">
-            <results>
-              <test-case name="JsonDataContractCodec_Specification.when_writing_a_json_representation.the_content_is_written_to_the_stream" executed="True" success="True" time="0.387" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="KeyedValuesBinder_Specification" executed="True" success="True" time="0.110" asserts="0">
-        <results>
-          <test-suite name="when_building_the_object" executed="True" success="True" time="0.109" asserts="0">
-            <results>
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.a_change_after_a_creation_results_in_a_new_oject_with_the_same_properties" executed="True" success="True" time="0.002" asserts="2" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.can_build_nested_dictionaries" executed="True" success="True" time="0.079" asserts="2" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.enumerables_are_initialized_as_empty_by_default" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.enumerables_can_be_built_without_headers" executed="True" success="True" time="0.014" asserts="5" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.multiple_properties_on_child_objects_are_assigned_correctly" executed="True" success="True" time="0.005" asserts="8" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.the_object_is_created_with_the_correct_properties" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.the_property_is_assigned_even_when_the_prefix_has_the_same_name" executed="True" success="True" time="0.002" asserts="3" />
-              <test-case name="KeyedValuesBinder_Specification.when_building_the_object.the_same_object_is_returned_when_building_twice_without_changes" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="LegacyManualConfiguration_Specification" executed="True" success="True" time="0.213" asserts="0">
-        <results>
-          <test-suite name="when_adding_handlers" executed="True" success="True" time="0.120" asserts="0">
-            <results>
-              <test-case name="LegacyManualConfiguration_Specification.when_adding_handlers.the_handler_is_registered" executed="True" success="True" time="0.120" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_adding_uris_to_a_resource" executed="True" success="True" time="0.023" asserts="0">
-            <results>
-              <test-case name="LegacyManualConfiguration_Specification.when_adding_uris_to_a_resource.language_and_names_are_properly_registered" executed="True" success="True" time="0.008" asserts="4" />
-              <test-case name="LegacyManualConfiguration_Specification.when_adding_uris_to_a_resource.registering_two_urls_works" executed="True" success="True" time="0.008" asserts="8" />
-              <test-case name="LegacyManualConfiguration_Specification.when_adding_uris_to_a_resource.the_base_uri_is_registered_for_that_resource" executed="True" success="True" time="0.006" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_configuring_codecs" executed="True" success="True" time="0.068" asserts="0">
-            <results>
-              <test-case name="LegacyManualConfiguration_Specification.when_configuring_codecs.a_codec_registered_with_configuration_media_type_doesnt_have_the_attribute_media_type_registered" executed="True" success="True" time="0.031" asserts="2" />
-              <test-case name="LegacyManualConfiguration_Specification.when_configuring_codecs.a_codec_registered_with_two_media_type_attributes_is_registered_twice" executed="True" success="True" time="0.009" asserts="2" />
-              <test-case name="LegacyManualConfiguration_Specification.when_configuring_codecs.a_codec_registered_with_two_media_types_in_configuration_is_registered_twice" executed="True" success="True" time="0.007" asserts="2" />
-              <test-case name="LegacyManualConfiguration_Specification.when_configuring_codecs.a_codec_registered_without_media_types_is_registered_with_the_default_attributed_media_types" executed="True" success="True" time="0.008" asserts="1" />
-              <test-case name="LegacyManualConfiguration_Specification.when_configuring_codecs.registering_a_codec_without_media_type_in_config_or_in_attributes_raises_an_error" executed="True" success="True" time="0.011" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="LengthTrackingStream_Specification" executed="True" success="True" time="0.022" asserts="0">
-        <results>
-          <test-suite name="when_writing_to_a_non_seekable_stream" executed="True" success="True" time="0.020" asserts="0">
-            <results>
-              <test-case name="LengthTrackingStream_Specification.when_writing_to_a_non_seekable_stream.the_correct_number_of_bytes_is_recorded" executed="True" success="True" time="0.020" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_writing_to_a_seekable_stream" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="LengthTrackingStream_Specification.when_writing_to_a_seekable_stream.the_correct_number_of_bytes_is_recorded" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MediaType_Specification" executed="True" success="True" time="0.014" asserts="0">
-        <results>
-          <test-suite name="when_ordering_content_types" executed="True" success="True" time="0.007" asserts="0">
-            <results>
-              <test-case name="MediaType_Specification.when_ordering_content_types.AWildcardForBaseTypeIsLessSpecificThanANonWildcard" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.AWildcardHasLowerPriorityThanAny" executed="True" success="True" time="0.000" asserts="3" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.AWildcardIsConsideredAsHavingTheLowestPriority" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.AWildcardSubTypeHasLowerPriorityThanASpecificSubType" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.TheApplicationXmlContentTypeIsOrderedAfterAnyOtherContentTypeOfSamePriority" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.TheApplicationXmlContentTypeIsOrderedAfterMoreSpecificTypes" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaType_Specification.when_ordering_content_types.TheOrderingWorksAsPerRFC2616_14_1" executed="True" success="True" time="0.001" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_parsing_a_content_type" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="MediaType_Specification.when_parsing_a_content_type.parsing_a_quality_value_when_using_another_culture_still_parse_the_dot_value" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="MediaType_Specification.when_parsing_a_content_type.TheBaseTypeIsProcessedCorrectly" executed="True" success="True" time="0.000" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MediaTypeDictionary_Specification" executed="True" success="True" time="0.046" asserts="0">
-        <results>
-          <test-suite name="media_type_context" executed="False">
-            <reason>
-              <message><![CDATA[media_type_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_adding_media_types" executed="True" success="True" time="0.035" asserts="0">
-            <results>
-              <test-case name="MediaTypeDictionary_Specification.when_adding_media_types.adding_a_null_media_type_raises_an_error" executed="True" success="True" time="0.035" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_matching_media_types" executed="True" success="True" time="0.008" asserts="0">
-            <results>
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.an_item_with_a_wildcard_media_type_matches_any_media_type" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.matching_on_wildcard_returns_all_results" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.registering_a_specific_media_type_and_matching_on_sub_type_wildcard_returns_two_results" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.registering_a_specific_mediatype_and_matching_on_that_mediatype_returns_one_result" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.registering_the_same_media_type_and_associated_value_adds_it_only_once" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="MediaTypeDictionary_Specification.when_matching_media_types.registering_two_media_types_with_different_values_is_supported" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MetaModelHandler_Specification" executed="True" success="True" time="0.027" asserts="0">
-        <results>
-          <test-suite name="metamodelhandler_context&lt;T&gt;" executed="True" success="False" time="0.000" asserts="0" />
-          <test-suite name="when_registering_codecs" executed="True" success="True" time="0.011" asserts="0">
-            <results>
-              <test-case name="MetaModelHandler_Specification.when_registering_codecs.a_codec_registered_without_a_media_type_uses_theattribute" executed="True" success="True" time="0.006" asserts="3" />
-              <test-case name="MetaModelHandler_Specification.when_registering_codecs.all_registered_codecs_for_a_resource_key_are_registered" executed="True" success="True" time="0.002" asserts="7" />
-              <test-case name="MetaModelHandler_Specification.when_registering_codecs.cannot_add_a_codec_not_implementing_the_correct_interfaces" executed="True" success="True" time="0.002" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_dependencies" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="MetaModelHandler_Specification.when_registering_dependencies.a_dependency_is_registered_in_the_container" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="MetaModelHandler_Specification.when_registering_dependencies.cannot_add_registrations_for_null_types" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_handlers" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="MetaModelHandler_Specification.when_registering_handlers.all_registered_handlers_for_a_resource_key_are_registered" executed="True" success="True" time="0.003" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_non_IType_resource_keys" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="MetaModelHandler_Specification.when_registering_non_IType_resource_keys.a_clr_type_is_changed_to_an_IType" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_registering_uris" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="MetaModelHandler_Specification.when_registering_uris.all_uris_for_a_resource_get_registered" executed="True" success="True" time="0.002" asserts="6" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MultipartFormDataCodec_Specification" executed="True" success="False" time="0.159" asserts="0">
-        <results>
-          <test-suite name="multipart_codec" executed="False">
-            <reason>
-              <message><![CDATA[multipart_codec does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_parsing_parts_for_base_types" executed="True" success="True" time="0.067" asserts="0">
-            <results>
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_for_base_types.a_datetime_is_assigned" executed="True" success="True" time="0.055" asserts="3" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_for_base_types.a_large_field_value_is_stored_on_disk" executed="True" success="True" time="0.006" asserts="4" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_for_base_types.a_string_is_assigned" executed="True" success="True" time="0.005" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_parsing_parts_with_names_representing_types" executed="True" success="False" time="0.034" asserts="0">
-            <results>
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_names_representing_types.a_datetime_property_is_assigned" executed="True" success="True" time="0.006" asserts="3" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_names_representing_types.a_string_property_is_assigned" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_names_representing_types.another_mime_type_for_key_values_is_used_to_parse_the_result_correctly" executed="True" success="True" time="0.003" asserts="6" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_names_representing_types.construction_of_objects_from_other_media_types_returns_the_correct_values" executed="True" success="False" time="0.020" asserts="2">
-                <failure>
-                  <message><![CDATA[  Expected: not <System.Reflection.Missing>
-  But was:  <System.Reflection.Missing>
-]]></message>
-                  <stack-trace><![CDATA[at OpenRasta.Testing.SpecExtensions.ShouldNotBe[T](T valueToAnalyse, T expectedValue) in c:\src\caff\openrasta\trunk\src\core\OpenRasta.Testing\SpecExtensions.cs:line 251
-at OpenRasta.Codecs.media_type_reader_context`1.then_decoding_result[T]() in c:\src\caff\openrasta\trunk\src\core\OpenRasta.Tests.Unit\Codecs\media_type_reader_context.cs:line 67
-at MultipartFormDataCodec_Specification.when_parsing_parts_with_names_representing_types.construction_of_objects_from_other_media_types_returns_the_correct_values() in c:\src\caff\openrasta\trunk\src\core\OpenRasta.Tests.Unit\Codecs\MultipartFormDataCodec_Specification.cs:line 184
-]]></stack-trace>
-                </failure>
-              </test-case>
-            </results>
-          </test-suite>
-          <test-suite name="when_parsing_parts_with_unicode_names" executed="True" success="True" time="0.027" asserts="0">
-            <results>
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_unicode_names.a_field_name_encoded_in_base64_for_iso_is_recognized" executed="True" success="True" time="0.015" asserts="3" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_unicode_names.a_field_name_encoded_in_base64_for_utf_8_is_recognized" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_unicode_names.a_sub_codec_is_used_to_resolve_a_parameter_name" executed="True" success="True" time="0.005" asserts="6" />
-              <test-case name="MultipartFormDataCodec_Specification.when_parsing_parts_with_unicode_names.the_field_name_encoded_in_quoted_printable_for_utf_8_is_recognized" executed="True" success="True" time="0.003" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_the_requested_type_is_enumerating_IHttpEntity" executed="True" success="True" time="0.024" asserts="0">
-            <results>
-              <test-case name="MultipartFormDataCodec_Specification.when_the_requested_type_is_enumerating_IHttpEntity.string_parameters_are_passed_correctly" executed="True" success="True" time="0.023" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_writing_multipart_formdata" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="MultipartFormDataCodec_Specification.when_writing_multipart_formdata.a_form_input_value_is_encoded_correctly" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MultipartReader_Specification" executed="True" success="True" time="0.008" asserts="0">
-        <results>
-          <test-suite name="when_parsing_a_multipart_related_content_type" executed="True" success="True" time="0.008" asserts="0">
-            <results>
-              <test-case name="MultipartReader_Specification.when_parsing_a_multipart_related_content_type.a_part_with_no_headers_has_its_content_parsed_correctly_and_no_header" executed="True" success="True" time="0.002" asserts="3" />
-              <test-case name="MultipartReader_Specification.when_parsing_a_multipart_related_content_type.a_part_without_a_boundary_will_throw" executed="True" success="True" time="0.000" asserts="0" />
-              <test-case name="MultipartReader_Specification.when_parsing_a_multipart_related_content_type.parsing_a_message_with_three_parts_and_skipping_the_first_one_gets_the_content_of_the_second_properly" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="MultipartReader_Specification.when_parsing_a_multipart_related_content_type.parsing_an_entity_with_three_messages_returns_three_objects" executed="True" success="True" time="0.002" asserts="7" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="MultipartWriter_Specification" executed="True" success="True" time="0.023" asserts="0">
-        <results>
-          <test-suite name="when_writing_a_multipart" executed="True" success="True" time="0.022" asserts="0">
-            <results>
-              <test-case name="MultipartWriter_Specification.when_writing_a_multipart.writing_an_entity_generates_two_parts" executed="True" success="True" time="0.021" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="OpenRasta" executed="True" success="True" time="0.822" asserts="0">
-        <results>
-          <test-suite name="Codecs" executed="True" success="False" time="0.002" asserts="0">
-            <results>
-              <test-suite name="codec_context&lt;TCodec&gt;" executed="True" success="False" time="0.000" asserts="0" />
-              <test-suite name="media_type_reader_context&lt;TCodec&gt;" executed="True" success="False" time="0.000" asserts="0" />
-              <test-suite name="media_type_writer_context&lt;TCodec&gt;" executed="True" success="False" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="Collections" executed="True" success="True" time="0.005" asserts="0">
-            <results>
-              <test-suite name="Specialized" executed="True" success="True" time="0.005" asserts="0">
-                <results>
-                  <test-suite name="WhenUsingCollectionExtensions" executed="True" success="True" time="0.004" asserts="0">
-                    <results>
-                      <test-case name="OpenRasta.Collections.Specialized.WhenUsingCollectionExtensions.AnyAnonymousObjectCanBeConvertedToAnIDictionary" executed="True" success="True" time="0.004" asserts="3" />
-                      <test-case name="OpenRasta.Collections.Specialized.WhenUsingCollectionExtensions.TheConvertedDictionaryHasCaseInsensitiveKeys" executed="True" success="True" time="0.000" asserts="2" />
-                    </results>
-                  </test-suite>
-                </results>
-              </test-suite>
-            </results>
-          </test-suite>
-          <test-suite name="Diagnostics" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-suite name="when_reading_log_source_data" executed="True" success="True" time="0.001" asserts="0">
-                <results>
-                  <test-case name="OpenRasta.Diagnostics.when_reading_log_source_data.a_log_source_without_category_is_named_after_the_type" executed="True" success="True" time="0.000" asserts="1" />
-                  <test-case name="OpenRasta.Diagnostics.when_reading_log_source_data.the_category_is_read_from_an_attribute" executed="True" success="True" time="0.000" asserts="1" />
-                </results>
-              </test-suite>
-            </results>
-          </test-suite>
-          <test-suite name="IO" executed="True" success="False" time="0.000" asserts="0">
-            <results>
-              <test-suite name="stream_context" executed="False">
-                <reason>
-                  <message><![CDATA[stream_context does not have any tests]]></message>
-                </reason>
-              </test-suite>
-            </results>
-          </test-suite>
-          <test-suite name="Tests" executed="True" success="True" time="0.766" asserts="0">
-            <results>
-              <test-suite name="openrasta_context" executed="False">
-                <reason>
-                  <message><![CDATA[openrasta_context does not have any tests]]></message>
-                </reason>
-              </test-suite>
-              <test-suite name="Unit" executed="True" success="True" time="0.750" asserts="0">
-                <results>
-                  <test-suite name="Collections" executed="True" success="True" time="0.038" asserts="0">
-                    <results>
-                      <test-suite name="when_iterating_over_a_collection" executed="True" success="True" time="0.024" asserts="0">
-                        <results>
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_iterating_over_a_collection.all_discarded_items_are_notified" executed="True" success="True" time="0.022" asserts="4" />
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_iterating_over_a_collection.the_selected_items_trigger_notification" executed="True" success="True" time="0.002" asserts="4" />
-                        </results>
-                      </test-suite>
-                      <test-suite name="when_resuming_enumerations" executed="True" success="True" time="0.013" asserts="0">
-                        <results>
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_resuming_enumerations.enumerating_all_values_is_successfull" executed="True" success="True" time="0.005" asserts="5" />
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_resuming_enumerations.enumerating_until_suspension_should_enumerate_previous_items" executed="True" success="True" time="0.001" asserts="2" />
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_resuming_enumerations.enumerating_values_from_a_starting_point_is_successfull" executed="True" success="True" time="0.002" asserts="5" />
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_resuming_enumerations.enumerating_values_from_unknown_starting_point_fails" executed="True" success="True" time="0.000" asserts="2" />
-                          <test-case name="OpenRasta.Tests.Unit.Collections.when_resuming_enumerations.resuming_after_suspension_should_enumerate_further_items" executed="True" success="True" time="0.001" asserts="5" />
-                        </results>
-                      </test-suite>
-                    </results>
-                  </test-suite>
-                  <test-suite name="Configuration" executed="True" success="False" time="0.001" asserts="0">
-                    <results>
-                      <test-suite name="configuration_context" executed="False">
-                        <reason>
-                          <message><![CDATA[configuration_context does not have any tests]]></message>
-                        </reason>
-                      </test-suite>
-                    </results>
-                  </test-suite>
-                  <test-suite name="OperationModel" executed="True" success="True" time="0.623" asserts="0">
-                    <results>
-                      <test-suite name="CodecSelectors" executed="True" success="True" time="0.080" asserts="0">
-                        <results>
-                          <test-suite name="requestcodecselector_context" executed="False">
-                            <reason>
-                              <message><![CDATA[requestcodecselector_context does not have any tests]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="when_a_codec_is_not_found" executed="True" success="True" time="0.062" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.CodecSelectors.when_a_codec_is_not_found.the_operation_is_not_selected" executed="True" success="True" time="0.061" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_there_is_a_request_entity" executed="True" success="True" time="0.005" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.CodecSelectors.when_there_is_a_request_entity.operations_without_any_member_do_not_get_a_codec_assigned" executed="True" success="True" time="0.005" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_there_is_no_content_type" executed="True" success="True" time="0.005" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.CodecSelectors.when_there_is_no_content_type.the_content_type_is_set_to_application_octet_stream" executed="True" success="True" time="0.004" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_there_is_no_request_entity" executed="True" success="True" time="0.005" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.CodecSelectors.when_there_is_no_request_entity.only_operations_already_ready_for_invocation_get_returned" executed="True" success="True" time="0.005" asserts="4" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="Filters" executed="True" success="True" time="0.096" asserts="0">
-                        <results>
-                          <test-suite name="httpmethod_context" executed="False">
-                            <reason>
-                              <message><![CDATA[httpmethod_context does not have any tests]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="operation_filter_context&lt;THandler,TFilter&gt;" executed="True" success="False" time="0.000" asserts="0" />
-                          <test-suite name="uriname_filter_context" executed="False">
-                            <reason>
-                              <message><![CDATA[uriname_filter_context does not have any tests]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="uriparameters_context" executed="False">
-                            <reason>
-                              <message><![CDATA[OpenRasta.Tests.Unit.OperationModel.Filters.uriparameters_context is an abstract class]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="UriParameters_Specification" executed="True" success="True" time="0.039" asserts="0">
-                            <results>
-                              <test-suite name="when_there_is_no_uri_parameter" executed="True" success="True" time="0.014" asserts="0">
-                                <results>
-                                  <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.UriParameters_Specification.when_there_is_no_uri_parameter.all_operations_are_selected" executed="True" success="True" time="0.014" asserts="3" />
-                                </results>
-                              </test-suite>
-                              <test-suite name="when_there_is_one_uri_parameter_list" executed="True" success="True" time="0.025" asserts="0">
-                                <results>
-                                  <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.UriParameters_Specification.when_there_is_one_uri_parameter_list.an_operation_having_all_parameters_is_selected" executed="True" success="True" time="0.015" asserts="4" />
-                                  <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.UriParameters_Specification.when_there_is_one_uri_parameter_list.operations_not_having_the_correct_parameter_is_excluded" executed="True" success="True" time="0.005" asserts="2" />
-                                  <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.UriParameters_Specification.when_there_is_one_uri_parameter_list.operations_with_the_wrong_parameter_type_are_not_selected" executed="True" success="True" time="0.004" asserts="3" />
-                                </results>
-                              </test-suite>
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_a_uri_name_is_present" executed="True" success="True" time="0.016" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.when_a_uri_name_is_present.methods_with_the_attribute_are_included" executed="True" success="True" time="0.015" asserts="4" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_no_uri_name_is_resent" executed="True" success="True" time="0.008" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.when_no_uri_name_is_resent.no_operation_gets_removed" executed="True" success="True" time="0.007" asserts="5" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_the_http_method_matches_a_method_on_the_handler" executed="True" success="True" time="0.025" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.when_the_http_method_matches_a_method_on_the_handler.a_method_with_a_matching_attribute_is_found" executed="True" success="True" time="0.021" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Filters.when_the_http_method_matches_a_method_on_the_handler.the_methods_are_matched_by_name_starting_with_http_method" executed="True" success="True" time="0.004" asserts="4" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="Hydrators" executed="True" success="True" time="0.142" asserts="0">
-                        <results>
-                          <test-suite name="request_entity_reader_context" executed="False">
-                            <reason>
-                              <message><![CDATA[OpenRasta.Tests.Unit.OperationModel.Hydrators.request_entity_reader_context is an abstract class]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="when_codec_supports_keyed_values" executed="True" success="True" time="0.049" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_codec_supports_keyed_values.the_keyed_values_are_used_to_build_the_parameter" executed="True" success="True" time="0.049" asserts="4" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_codec_supports_object_building" executed="True" success="True" time="0.067" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_codec_supports_object_building.an_error_is_collected_if_codec_raises_an_error" executed="True" success="True" time="0.061" asserts="4" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_codec_supports_object_building.the_object_is_built" executed="True" success="True" time="0.005" asserts="5" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_multiple_operations_are_defined_with_codecs" executed="True" success="True" time="0.007" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_multiple_operations_are_defined_with_codecs.the_one_with_the_highest_score_is_selected" executed="True" success="True" time="0.003" asserts="3" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_multiple_operations_are_defined_with_codecs.the_one_without_a_codec_is_not_selected" executed="True" success="True" time="0.003" asserts="3" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_multiple_operations_are_defined_without_codec" executed="True" success="True" time="0.006" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_multiple_operations_are_defined_without_codec.the_one_with_the_highest_number_of_satisfied_parameters_and_ready_for_invocation_is_selected" executed="True" success="True" time="0.006" asserts="6" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_no_operation_can_be_processed" executed="True" success="True" time="0.002" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_no_operation_can_be_processed.no_operation_gets_selected" executed="True" success="True" time="0.002" asserts="2" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_no_processable_operation_" executed="True" success="True" time="0.003" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Hydrators.when_no_processable_operation_.no_operation_gets_selected" executed="True" success="True" time="0.002" asserts="2" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="Interceptors" executed="True" success="True" time="0.182" asserts="0">
-                        <results>
-                          <test-suite name="interceptors_context&lt;T&gt;" executed="True" success="False" time="0.000" asserts="0" />
-                          <test-suite name="when_getting_interceptors_for_an_operation" executed="True" success="True" time="0.023" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_getting_interceptors_for_an_operation.attribute_interceptor_providers_are_returned" executed="True" success="True" time="0.017" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_getting_interceptors_for_an_operation.attribute_interceptors_are_returned" executed="True" success="True" time="0.002" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_getting_interceptors_for_an_operation.system_interceptors_are_returned" executed="True" success="True" time="0.002" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_wrapping_an_operation_context" executed="True" success="True" time="0.158" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.an_interceptor_can_replace_the_original_invoke_call" executed="True" success="True" time="0.117" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.an_interceptor_returning_false_in_post_condition_prevents_execution_from_continuing" executed="True" success="True" time="0.015" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.an_interceptor_returning_false_in_pre_condition_prevents_execution_from_continuing" executed="True" success="True" time="0.005" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.an_interceptor_throwing_an_exception_in_post_condition_prevents_execution_from_continuing" executed="True" success="True" time="0.011" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.an_interceptor_throwing_an_exception_in_pre_condition_prevents_execution_from_continuing" executed="True" success="True" time="0.004" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.Interceptors.when_wrapping_an_operation_context.the_delegated_members_are_the_ones_of_the_wrapped_operation" executed="True" success="True" time="0.003" asserts="3" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="MethodBased" executed="True" success="True" time="0.117" asserts="0">
-                        <results>
-                          <test-suite name="method_based_operation_creator_context" executed="False">
-                            <reason>
-                              <message><![CDATA[method_based_operation_creator_context does not have any tests]]></message>
-                            </reason>
-                          </test-suite>
-                          <test-suite name="operation_context&lt;THandler&gt;" executed="True" success="False" time="0.000" asserts="0" />
-                          <test-suite name="operation_creator_context&lt;T&gt;" executed="True" success="False" time="0.000" asserts="0" />
-                          <test-suite name="when_creating_operations" executed="True" success="True" time="0.016" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_creating_operations.property_getters_are_not_selected" executed="True" success="True" time="0.007" asserts="0" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_creating_operations.the_operation_name_is_the_method_name" executed="True" success="True" time="0.004" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_creating_operations.the_operation_string_representation_is_the_method_signature" executed="True" success="True" time="0.003" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_filtering_methods_by_type" executed="True" success="True" time="0.004" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_filtering_methods_by_type.the_methods_from_the_type_are_excluded" executed="True" success="True" time="0.004" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_invoking_an_operation" executed="True" success="True" time="0.017" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_invoking_an_operation.a_result_is_returned" executed="True" success="True" time="0.013" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_invoking_an_operation.an_operation_not_ready_for_invocation_throws_an_exception" executed="True" success="True" time="0.003" asserts="0" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_reading_attributes_not_present_on_a_method" executed="True" success="True" time="0.007" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_not_present_on_a_method.an_attribute_not_defined_returns_an_empty_collection" executed="True" success="True" time="0.004" asserts="3" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_not_present_on_a_method.an_attribute_not_defined_returns_null" executed="True" success="True" time="0.002" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_reading_attributes_present_on_a_method" executed="True" success="True" time="0.014" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_present_on_a_method.a_single_attribute_is_found" executed="True" success="True" time="0.003" asserts="2" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_present_on_a_method.an_attribute_can_be_found_when_searching_by_interface" executed="True" success="True" time="0.003" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_present_on_a_method.attributes_on_the_metod_owner_type_are_returned" executed="True" success="True" time="0.003" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_reading_attributes_present_on_a_method.multile_attributes_are_found" executed="True" success="True" time="0.004" asserts="2" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_there_is_a_method_filter" executed="True" success="True" time="0.025" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_there_is_a_method_filter.a_filter_is_called_that_filters_all_operations" executed="True" success="True" time="0.025" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_there_is_no_method_filter" executed="True" success="True" time="0.004" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_there_is_no_method_filter.by_default_operations_are_created_for_all_public_instance_and_static_methods" executed="True" success="True" time="0.003" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_using_optional_members" executed="True" success="True" time="0.015" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_using_optional_members.a_default_parameter_value_is_supported" executed="True" success="True" time="0.004" asserts="3" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_using_optional_members.all_parameters_are_satisfied" executed="True" success="True" time="0.002" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_using_optional_members.the_operation_is_ready_for_invocation" executed="True" success="True" time="0.008" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_using_required_members" executed="True" success="True" time="0.005" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_using_required_members.no_parameter_is_satisfied" executed="True" success="True" time="0.003" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.OperationModel.MethodBased.when_using_required_members.the_operation_is_not_ready_for_invocation" executed="True" success="True" time="0.002" asserts="1" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                    </results>
-                  </test-suite>
-                  <test-suite name="Security" executed="True" success="True" time="0.017" asserts="0">
-                    <results>
-                      <test-suite name="when_the_user_is_in_the_correct_group" executed="True" success="True" time="0.014" asserts="0">
-                        <results>
-                          <test-case name="OpenRasta.Tests.Unit.Security.when_the_user_is_in_the_correct_group.execution_is_not_allowed" executed="True" success="True" time="0.002" asserts="1" />
-                        </results>
-                      </test-suite>
-                      <test-suite name="when_the_user_is_not_in_the_correct_group" executed="True" success="True" time="0.001" asserts="0">
-                        <results>
-                          <test-case name="OpenRasta.Tests.Unit.Security.when_the_user_is_not_in_the_correct_group.execution_is_not_allowed" executed="True" success="True" time="0.001" asserts="2" />
-                        </results>
-                      </test-suite>
-                    </results>
-                  </test-suite>
-                  <test-suite name="Web" executed="True" success="True" time="0.065" asserts="0">
-                    <results>
-                      <test-suite name="Headers" executed="True" success="True" time="0.019" asserts="0">
-                        <results>
-                          <test-suite name="when_assiging_a_string_value" executed="True" success="True" time="0.003" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assiging_a_string_value.assigning_empty_string_to_the_header_value_removes_the_header" executed="True" success="True" time="0.001" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assiging_a_string_value.assigning_null_to_the_header_value_removes_the_header" executed="True" success="True" time="0.000" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assiging_a_string_value.headers_not_present_return_null" executed="True" success="True" time="0.001" asserts="2" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assiging_a_string_value.the_header_is_created" executed="True" success="True" time="0.000" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_assigning_content_length_values" executed="True" success="True" time="0.006" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.assigning_a_negative_value_fails" executed="True" success="True" time="0.000" asserts="0" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.assinging_a_value_that_is_not_a_number_fails" executed="True" success="True" time="0.002" asserts="0" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.can_assign_a_long" executed="True" success="True" time="0.000" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.can_assign_string" executed="True" success="True" time="0.000" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.can_assign_to_long" executed="True" success="True" time="0.001" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_content_length_values.field_value_is_assigned" executed="True" success="True" time="0.001" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_assigning_media_types" executed="True" success="True" time="0.004" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_media_types.a_media_type_can_be_assigned_by_field_value" executed="True" success="True" time="0.000" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_media_types.assigning_null_mediatype_to_header_converts_to_null_header" executed="True" success="True" time="0.001" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_media_types.cannot_assing_a_null_media_type" executed="True" success="True" time="0.001" asserts="0" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_assigning_media_types.the_field_value_is_assigned_correctly" executed="True" success="True" time="0.001" asserts="1" />
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_creating_headers" executed="True" success="True" time="0.001" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_creating_headers.known_headers_are_of_the_correct_type" executed="True" success="True" time="0.000" asserts="1" />
-                              <test-case name="OpenRasta.Tests.Unit.Web.Headers.when_creating_headers.unknown_headers_are_generic_headers" executed="True" success="True" time="0.000" asserts="1" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="Pipeline" executed="True" success="True" time="0.021" asserts="0">
-                        <results>
-                          <test-suite name="Contributors" executed="True" success="True" time="0.021" asserts="0">
-                            <results>
-                              <test-suite name="CodecSelector" executed="True" success="True" time="0.019" asserts="0">
-                                <results>
-                                  <test-suite name="when_no_operation_is_returned" executed="True" success="True" time="0.019" asserts="0">
-                                    <results>
-                                      <test-case name="OpenRasta.Tests.Unit.Web.Pipeline.Contributors.CodecSelector.when_no_operation_is_returned.the_result_is_a_415_error" executed="True" success="True" time="0.019" asserts="2" />
-                                    </results>
-                                  </test-suite>
-                                </results>
-                              </test-suite>
-                              <test-suite name="operation_processors_context&lt;TStage&gt;" executed="True" success="False" time="0.000" asserts="0" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                      <test-suite name="UriDecorators" executed="True" success="True" time="0.020" asserts="0">
-                        <results>
-                          <test-suite name="context" executed="True" success="False" time="0.001" asserts="0">
-                            <results>
-                              <test-suite name="content_type_extension" executed="False">
-                                <reason>
-                                  <message><![CDATA[content_type_extension does not have any tests]]></message>
-                                </reason>
-                              </test-suite>
-                            </results>
-                          </test-suite>
-                          <test-suite name="when_rewriting_a_uri_with_extension" executed="True" success="True" time="0.018" asserts="0">
-                            <results>
-                              <test-case name="OpenRasta.Tests.Unit.Web.UriDecorators.when_rewriting_a_uri_with_extension.the_rewritten_uri_is_relative_to_the_app_base" executed="True" success="True" time="0.017" asserts="4" />
-                            </results>
-                          </test-suite>
-                        </results>
-                      </test-suite>
-                    </results>
-                  </test-suite>
-                </results>
-              </test-suite>
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="OperationCreationContributor_Specification" executed="True" success="True" time="0.040" asserts="0">
-        <results>
-          <test-suite name="contributor_context&lt;T&gt;" executed="True" success="False" time="0.000" asserts="0" />
-          <test-suite name="operation_creation_context" executed="False">
-            <reason>
-              <message><![CDATA[OperationCreationContributor_Specification.operation_creation_context is an abstract class]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_in_the_pipeline" executed="True" success="True" time="0.020" asserts="0">
-            <results>
-              <test-case name="OperationCreationContributor_Specification.when_in_the_pipeline.it_executes_after_handler_selection" executed="True" success="True" time="0.019" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_no_operation_is_created" executed="True" success="True" time="0.006" asserts="0">
-            <results>
-              <test-case name="OperationCreationContributor_Specification.when_no_operation_is_created.the_operation_result_is_set_to_method_not_allowed" executed="True" success="True" time="0.006" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_operations_are_created" executed="True" success="True" time="0.007" asserts="0">
-            <results>
-              <test-case name="OperationCreationContributor_Specification.when_operations_are_created.an_operation_is_set_and_the_processing_continues" executed="True" success="True" time="0.006" asserts="4" />
-            </results>
-          </test-suite>
-          <test-suite name="when_there_is_no_handler" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="OperationCreationContributor_Specification.when_there_is_no_handler.operations_are_not_created_and_the_processing_continues" executed="True" success="True" time="0.003" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="OperationHydration_Spec" executed="True" success="True" time="0.017" asserts="0">
-        <results>
-          <test-suite name="when_executing_operation_hydrators" executed="True" success="True" time="0.017" asserts="0">
-            <results>
-              <test-case name="OperationHydration_Spec.when_executing_operation_hydrators.the_hydrator_is_executed" executed="True" success="True" time="0.016" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="PagedData_Specification" executed="True" success="True" time="0.076" asserts="0">
-        <results>
-          <test-suite name="when_selecting_pages" executed="True" success="True" time="0.076" asserts="0">
-            <results>
-              <test-case name="PagedData_Specification.when_selecting_pages.asking_for_a_page_when_it_doesnt_exist_because_there_are_not_enough_results_will_throw_an_exception" executed="True" success="True" time="0.048" asserts="0" />
-              <test-case name="PagedData_Specification.when_selecting_pages.asking_for_an_invalid_page_number_raises_an_exception" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="PagedData_Specification.when_selecting_pages.asking_for_an_invalid_page_size_raises_an_exception" executed="True" success="True" time="0.001" asserts="0" />
-              <test-case name="PagedData_Specification.when_selecting_pages.requesting_page_1_is_a_valida_action_even_when_tehre_are_no_results" executed="True" success="True" time="0.013" asserts="1" />
-              <test-case name="PagedData_Specification.when_selecting_pages.requesting_the_second_page_for_a_page_size_of_5_returns_5_items_and_4_pages" executed="True" success="True" time="0.008" asserts="3" />
-              <test-case name="PagedData_Specification.when_selecting_pages.there_are_two_pages_when_the_page_count_is_19" executed="True" success="True" time="0.002" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="PipelineRunner_Specification" executed="True" success="True" time="0.033" asserts="0">
-        <results>
-          <test-suite name="pipelinerunner_context" executed="False">
-            <reason>
-              <message><![CDATA[pipelinerunner_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_accessing_the_contributors" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="PipelineRunner_Specification.when_accessing_the_contributors.the_contributor_list_always_contains_the_bootstrap_contributor" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="PipelineRunner_Specification.when_accessing_the_contributors.the_contributor_list_is_read_only" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_building_the_call_graph" executed="True" success="True" time="0.012" asserts="0">
-            <results>
-              <test-case name="PipelineRunner_Specification.when_building_the_call_graph.a_second_contrib_registering_after_the_first_contrib_that_registers_after_the_boot_initializes_the_call_list_in_the_correct_order" executed="True" success="True" time="0.006" asserts="3" />
-              <test-case name="PipelineRunner_Specification.when_building_the_call_graph.registering_all_the_contributors_results_in_a_correct_call_graph" executed="True" success="True" time="0.003" asserts="5" />
-              <test-case name="PipelineRunner_Specification.when_building_the_call_graph.the_call_graph_cannot_be_recursive" executed="True" success="True" time="0.002" asserts="0" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_the_pipeline" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="PipelineRunner_Specification.when_creating_the_pipeline.a_registered_contributor_gets_initialized_and_is_part_of_the_contributor_collection" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_executing_the_pipeline" executed="True" success="True" time="0.012" asserts="0">
-            <results>
-              <test-case name="PipelineRunner_Specification.when_executing_the_pipeline.contributors_get_executed" executed="True" success="True" time="0.011" asserts="1" />
-              <test-case name="PipelineRunner_Specification.when_executing_the_pipeline.the_pipeline_must_have_been_initialized" executed="True" success="True" time="0.001" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="PropertyPathExpressionTree_Specification" executed="True" success="True" time="0.028" asserts="0">
-        <results>
-          <test-suite name="when_generating_paths_for_instances" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="PropertyPathExpressionTree_Specification.when_generating_paths_for_instances.an_instance_part_of_the_path_is_replaced_with_the_prefix_in_object_paths" executed="True" success="True" time="0.006" asserts="2" />
-              <test-case name="PropertyPathExpressionTree_Specification.when_generating_paths_for_instances.the_root_of_the_path_is_the_property_type" executed="True" success="True" time="0.003" asserts="3" />
-            </results>
-          </test-suite>
-          <test-suite name="when_generating_paths_from_fields" executed="True" success="True" time="0.018" asserts="0">
-            <results>
-              <test-case name="PropertyPathExpressionTree_Specification.when_generating_paths_from_fields.nested_properties_are_generated" executed="True" success="True" time="0.011" asserts="4" />
-              <test-case name="PropertyPathExpressionTree_Specification.when_generating_paths_from_fields.the_class_without_namespace_is_generated" executed="True" success="True" time="0.006" asserts="4" />
-              <test-case name="PropertyPathExpressionTree_Specification.when_generating_paths_from_fields.the_indexers_are_generated" executed="True" success="True" time="0.000" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="PropertyPathManager_Specification" executed="True" success="True" time="0.012" asserts="0">
-        <results>
-          <test-suite name="when_reading" executed="True" success="True" time="0.012" asserts="0">
-            <results>
-              <test-suite name="getting_path_type" executed="True" success="True" time="0.004" asserts="0">
-                <results>
-                  <test-case name="PropertyPathManager_Specification.when_reading.getting_path_type(&quot;:0&quot;,&quot;:0&quot;,Member,System.String[])" executed="True" success="True" time="0.001" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.the second prefix is a constructor" executed="True" success="True" time="0.000" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.getting_path_type(&quot;c.Name&quot;,&quot;Name&quot;,Member,System.String[])" executed="True" success="True" time="0.000" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.the first prefix is a constructor" executed="True" success="True" time="0.000" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.prefix is stripped and member is returned" executed="True" success="True" time="0.000" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.prefix is matched case-insensitively" executed="True" success="True" time="0.000" asserts="2" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.getting_path_type(&quot;&quot;,&quot;&quot;,Constructor,System.String[])" executed="True" success="True" time="0.000" asserts="2" />
-                </results>
-              </test-suite>
-              <test-suite name="reading_path_components" executed="True" success="True" time="0.004" asserts="0">
-                <results>
-                  <test-case name="PropertyPathManager_Specification.when_reading.reading_path_components(&quot;.&quot;,&quot;&quot;,None,&quot;&quot;,None)" executed="True" success="True" time="0.002" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.an indexer is read and the leftover starts after the dot" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.a member is read until an indexer and the leftover contains the column" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.a property is read and the leftover starts after the dot" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.reading_path_components(&quot;&quot;,&quot;&quot;,None,&quot;&quot;,None)" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.reading_path_components(null,&quot;&quot;,None,&quot;&quot;,None)" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.reading_path_components(&quot;:&quot;,&quot;&quot;,None,&quot;&quot;,None)" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.a property is read" executed="True" success="True" time="0.000" asserts="4" />
-                  <test-case name="PropertyPathManager_Specification.when_reading.an indexer is read" executed="True" success="True" time="0.000" asserts="4" />
-                </results>
-              </test-suite>
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ReflectionExtensions_Specification" executed="True" success="True" time="0.009" asserts="0">
-        <results>
-          <test-suite name="when_finding_interfaces" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="ReflectionExtensions_Specification.when_finding_interfaces.an_interface_on_a_type_is_discovered" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="ReflectionExtensions_Specification.when_finding_interfaces.an_interface_on_an_interface_is_discovered" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="ReflectionExtensions_Specification.when_finding_interfaces.an_interface_that_is_the_provided_interface_is_discovered" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="RequiresAuthenticationInterceptor_Specification" executed="True" success="True" time="0.004" asserts="0">
-        <results>
-          <test-suite name="when_the_user_is_authenticated" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="RequiresAuthenticationInterceptor_Specification.when_the_user_is_authenticated.execution_is_allowed" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_the_user_is_not_authenticated" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="RequiresAuthenticationInterceptor_Specification.when_the_user_is_not_authenticated.execution_is_denied" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ResourceTypeResolver_Specification" executed="True" success="True" time="0.018" asserts="0">
-        <results>
-          <test-suite name="when_there_is_already_a_match" executed="True" success="True" time="0.006" asserts="0">
-            <results>
-              <test-case name="ResourceTypeResolver_Specification.when_there_is_already_a_match.the_match_is_not_modified" executed="True" success="True" time="0.006" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_there_is_no_existing_match" executed="True" success="True" time="0.011" asserts="0">
-            <results>
-              <test-case name="ResourceTypeResolver_Specification.when_there_is_no_existing_match.a_failing_match_results_in_an_operation_not_found" executed="True" success="True" time="0.004" asserts="3" />
-              <test-case name="ResourceTypeResolver_Specification.when_there_is_no_existing_match.a_new_matching_is_done_and_the_resource_type_is_assigned" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="ResourceTypeResolver_Specification.when_there_is_no_existing_match.the_match_is_relative_to_the_app_base_uri" executed="True" success="True" time="0.002" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ResponseEntityCodecResolver_Specification" executed="True" success="True" time="0.045" asserts="0">
-        <results>
-          <test-suite name="when_a_codec_is_already_defined" executed="True" success="True" time="0.012" asserts="0">
-            <results>
-              <test-case name="ResponseEntityCodecResolver_Specification.when_a_codec_is_already_defined.the_codec_is_not_changed_and_the_pipeline_continues" executed="True" success="True" time="0.009" asserts="2" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_a_codec_is_already_defined.there_is_no_vary_header" executed="True" success="True" time="0.003" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_no_codec_has_been_predefined_defined" executed="True" success="True" time="0.030" asserts="0">
-            <results>
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.a_semi_wildcard_gets_priority_over_a_full_wildcard" executed="True" success="True" time="0.005" asserts="3" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.an_error_is_returned_when_no_suitable_codec_is_found" executed="True" success="True" time="0.004" asserts="2" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.nothing_happens_for_a_null_entity" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.the_client_quality_parameter_is_respected" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.the_codec_is_selected_for_an_exact_match" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.the_server_quality_is_respected_when_the_accept_header_has_a_full_wildcard" executed="True" success="True" time="0.003" asserts="3" />
-              <test-case name="ResponseEntityCodecResolver_Specification.when_no_codec_has_been_predefined_defined.the_server_quality_is_used_to_select_the_closest_media_type" executed="True" success="True" time="0.003" asserts="3">
-                <categories>
-                  <category name="Regression" />
-                </categories>
-              </test-case>
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="ResponseEntityWriter_Specification" executed="True" success="True" time="0.049" asserts="0">
-        <results>
-          <test-suite name="when_there_is_a_codec" executed="True" success="True" time="0.017" asserts="0">
-            <results>
-              <test-case name="ResponseEntityWriter_Specification.when_there_is_a_codec.the_codec_configuration_is_assigned" executed="True" success="True" time="0.012" asserts="3" />
-              <test-case name="ResponseEntityWriter_Specification.when_there_is_a_codec.the_correct_content_is_returned" executed="True" success="True" time="0.003" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_there_is_no_response_entity" executed="True" success="True" time="0.005" asserts="0">
-            <results>
-              <test-case name="ResponseEntityWriter_Specification.when_there_is_no_response_entity.no_entity_body_should_be_written" executed="True" success="True" time="0.003" asserts="2" />
-              <test-case name="ResponseEntityWriter_Specification.when_there_is_no_response_entity.the_entity_headers_are_written" executed="True" success="True" time="0.002" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_writing_the_entity" executed="True" success="True" time="0.024" asserts="0">
-            <results>
-              <test-case name="ResponseEntityWriter_Specification.when_writing_the_entity.the_content_length_is_defined_properly" executed="True" success="True" time="0.022" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Rfc2047Encoding_Specification" executed="True" success="True" time="0.037" asserts="0">
-        <results>
-          <test-suite name="when_decoding_strings_in_text_tokens" executed="True" success="True" time="0.037" asserts="0">
-            <results>
-              <test-case name="Rfc2047Encoding_Specification.when_decoding_strings_in_text_tokens.encoded_characters_are_decoded" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="Rfc2047Encoding_Specification.when_decoding_strings_in_text_tokens.mutliple_encodings_are_supported" executed="True" success="True" time="0.025" asserts="1" />
-              <test-case name="Rfc2047Encoding_Specification.when_decoding_strings_in_text_tokens.the_decoding_is_done_including_spaces" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="Rfc2047Encoding_Specification.when_decoding_strings_in_text_tokens.the_text_is_not_decoded_if_the_charset_is_unknown" executed="True" success="True" time="0.008" asserts="1" />
-              <test-case name="Rfc2047Encoding_Specification.when_decoding_strings_in_text_tokens.the_text_is_not_decoded_if_the_encoding_is_unknown" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="SelectElement_Specification" executed="True" success="False" time="0.000" asserts="0">
-        <results>
-          <test-suite name="when_there_is_a_value" executed="False">
-            <reason>
-              <message><![CDATA[when_there_is_a_value does not have any tests]]></message>
-            </reason>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="StyleSheetModule_Specifications" executed="True" success="True" time="0.017" asserts="0">
-        <results>
-          <test-suite name="when_setting_media" executed="True" success="True" time="0.016" asserts="0">
-            <results>
-              <test-case name="StyleSheetModule_Specifications.when_setting_media.adding_a_media_with_a_comma_results_in_two_media_values" executed="True" success="True" time="0.007" asserts="1" />
-              <test-case name="StyleSheetModule_Specifications.when_setting_media.the_media_attribute_is_generated" executed="True" success="True" time="0.002" asserts="0" />
-              <test-case name="StyleSheetModule_Specifications.when_setting_media.the_media_is_not_defined_by_default" executed="True" success="True" time="0.002" asserts="0" />
-              <test-case name="StyleSheetModule_Specifications.when_setting_media.two_media_attributes_are_generated" executed="True" success="True" time="0.003" asserts="0" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="Surrogates_Specification" executed="True" success="True" time="0.016" asserts="0">
-        <results>
-          <test-suite name="when_using_DateTime_surrogate" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Surrogates_Specification.when_using_DateTime_surrogate.nested_surrogate_types_are_used_for_read_only_properties" executed="True" success="True" time="0.002" asserts="4" />
-              <test-case name="Surrogates_Specification.when_using_DateTime_surrogate.surrogate_types_are_used_for_read_only_properties" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_using_ListOfT" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Surrogates_Specification.when_using_ListOfT.indexer_values_are_ignored_and_values_are_appended" executed="True" success="True" time="0.002" asserts="4" />
-              <test-case name="Surrogates_Specification.when_using_ListOfT.the_indexer_is_surrogated" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_using_ListOfT_as_a_nested_property" executed="True" success="True" time="0.004" asserts="0">
-            <results>
-              <test-case name="Surrogates_Specification.when_using_ListOfT_as_a_nested_property.a_nested_indexer_is_surrogated" executed="True" success="True" time="0.002" asserts="2" />
-              <test-case name="Surrogates_Specification.when_using_ListOfT_as_a_nested_property.indexer_value_is_ignored_when_surrogate_is_an_intermediary" executed="True" success="True" time="0.002" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_using_surrogated_property" executed="False">
-            <reason>
-              <message><![CDATA[when_using_surrogated_property does not have any tests]]></message>
-            </reason>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="TemplatedUriResolver_Specification" executed="True" success="True" time="0.020" asserts="0">
-        <results>
-          <test-suite name="context" executed="True" success="False" time="0.000" asserts="0">
-            <results>
-              <test-suite name="templated_uri_resolver_context" executed="False">
-                <reason>
-                  <message><![CDATA[templated_uri_resolver_context does not have any tests]]></message>
-                </reason>
-              </test-suite>
-            </results>
-          </test-suite>
-          <test-suite name="creating_uris" executed="True" success="True" time="0.015" asserts="0">
-            <results>
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.a_uri_by_name_is_found" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.the_correct_values_replace_the_variable_declarations" executed="True" success="True" time="0.005" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.the_generated_uri_is_correct_for_generic_types" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.the_generated_uri_is_correct_when_injecting_in_query_string_variables" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.uris_are_generated_correctly_when_base_uri_has_trailing_slash" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.uris_are_generated_correctly_when_base_uri_hasnt_got_trailing_slash" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.uris_with_names_are_not_selected_by_default" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="TemplatedUriResolver_Specification.creating_uris.uris_with_non_matching_templates_because_the_nvc_is_null_are_ignored" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="matching_uris" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="TemplatedUriResolver_Specification.matching_uris.https_uris_are_supported" executed="True" success="True" time="0.001" asserts="3" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="TextArea_Specification" executed="True" success="True" time="0.006" asserts="0">
-        <results>
-          <test-suite name="when_rendering_textarea_element_with_content" executed="True" success="True" time="0.005" asserts="0">
-            <results>
-              <test-case name="TextArea_Specification.when_rendering_textarea_element_with_content.the_content_is_written" executed="True" success="True" time="0.005" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="UriDecoratorsController_Specification" executed="True" success="True" time="0.010" asserts="0">
-        <results>
-          <test-suite name="when_using_simple_decorators" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="UriDecoratorsController_Specification.when_using_simple_decorators.processing_a_decorator_changes_the_request_url" executed="True" success="True" time="0.009" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="UriTemplate_Specification" executed="True" success="True" time="0.053" asserts="0">
-        <results>
-          <test-suite name="uritemplate_context" executed="False">
-            <reason>
-              <message><![CDATA[uritemplate_context does not have any tests]]></message>
-            </reason>
-          </test-suite>
-          <test-suite name="when_accessing_path_segments" executed="True" success="True" time="0.001" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_accessing_path_segments.all_valid_variables_are_returned" executed="True" success="True" time="0.000" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_binding_by_name" executed="True" success="True" time="0.003" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_binding_by_name.a_wildcard_is_not_generated" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_binding_by_name.the_variable_names_are_not_case_sensitive" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_binding_by_name.the_variables_are_replaced_in_the_generated_uri" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_binding_uris_by_name_in_a_vpath" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_binding_uris_by_name_in_a_vpath.a_query_string_is_appended_successfully" executed="True" success="True" time="0.005" asserts="2" />
-              <test-case name="UriTemplate_Specification.when_binding_uris_by_name_in_a_vpath.a_segment_is_appended_successfully" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="UriTemplate_Specification.when_binding_uris_by_name_in_a_vpath.an_unprefixed_segment_is_appended_successfully" executed="True" success="True" time="0.001" asserts="2" />
-            </results>
-          </test-suite>
-          <test-suite name="when_binding_urls_by_name" executed="True" success="True" time="0.000" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_binding_urls_by_name.the_values_in_the_query_string_are_injected" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_comparing_templates" executed="True" success="True" time="0.009" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_comparing_templates.a_template_isnt_equivalent_to_a_null_reference" executed="True" success="True" time="0.004" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.AWildcardMappingDoesntMatchANonWildcard" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.different_number_of_segments_make_two_templates_not_equivalent" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.templates_with_different_query_strings_are_not_equivalent" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.the_literal_path_segments_must_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.the_preceding_slash_character_is_ignored" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.the_trailing_slash_character_is_ignored" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_comparing_templates.the_trailing_slash_character_is_ignored_after_a_wildcard" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_matching_querystrings" executed="True" success="True" time="0.011" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_query_parameter_with_no_variable_is_ignored" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_different_by_last_letter_to_query_parameters_should_not_match" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_matching_multiple_query_parameters_should_match" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_matching_result_in_the_query_value_variable_being_set" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_matching_three_query_string_parameters_will_match" executed="True" success="True" time="0.001" asserts="4" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_not_matching_a_literal_query_string_will_not_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.a_url_with_extra_query_string_parameters_will_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.more_than_two_query_parameters_with_similar_names_are_processed" executed="True" success="True" time="0.000" asserts="3" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.multiple_query_parameters_are_processed" executed="True" success="True" time="0.000" asserts="2" />
-              <test-case name="UriTemplate_Specification.when_matching_querystrings.the_query_parameters_are_exposed" executed="True" success="True" time="0.000" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_matching_urls" executed="True" success="True" time="0.011" asserts="0">
-            <results>
-              <test-case name="UriTemplate_Specification.when_matching_urls.a_template_on_the_root_gets_a_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.matching_urls_with_different_host_names_returns_no_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_base_uri_is_the_one_provided_in_the_match" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_match_has_the_correct_relative_path_segments" executed="True" success="True" time="0.001" asserts="3" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_match_has_the_correct_segment_variables" executed="True" success="True" time="0.002" asserts="3" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_match_includes_dots" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_template_matches_when_in_a_virtual_directory" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.the_template_matches_when_in_a_virtual_directory_without_trailing_slash" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.there_is_no_match_when_a_segment_doesnt_match" executed="True" success="True" time="0.000" asserts="1" />
-              <test-case name="UriTemplate_Specification.when_matching_urls.there_is_no_match_with_different_segment_counts" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="UriTemplateTable_Specification" executed="True" success="True" time="0.002" asserts="0">
-        <results>
-          <test-suite name="when_matching_a_template_table" executed="True" success="True" time="0.002" asserts="0">
-            <results>
-              <test-case name="UriTemplateTable_Specification.when_matching_a_template_table.out_of_two_templates_with_one_query_parameter_only_the_correct_one_is_used" executed="True" success="True" time="0.002" asserts="2" />
-            </results>
-          </test-suite>
-        </results>
-      </test-suite>
-      <test-suite name="XhtmlDOM_Specification" executed="True" success="True" time="0.022" asserts="0">
-        <results>
-          <test-suite name="when_creating_elements" executed="True" success="True" time="0.008" asserts="0">
-            <results>
-              <test-case name="XhtmlDOM_Specification.when_creating_elements.an_element_is_created_with_the_correct_attributes" executed="True" success="True" time="0.003" asserts="1" />
-              <test-case name="XhtmlDOM_Specification.when_creating_elements.elements_with_uri_attributes_are_generated_properly" executed="True" success="True" time="0.002" asserts="1" />
-              <test-case name="XhtmlDOM_Specification.when_creating_elements.elements_without_content_model_are_rendered_without_a_closing_tag" executed="True" success="True" time="0.001" asserts="1" />
-            </results>
-          </test-suite>
-          <test-suite name="when_creating_list_of_attributes" executed="True" success="True" time="0.013" asserts="0">
-            <results>
-              <test-case name="XhtmlDOM_Specification.when_creating_list_of_attributes.any_attribute_with_simple_types_is_created_automatically" executed="True" success="True" time="0.001" asserts="2" />
-              <test-case name="XhtmlDOM_Specification.when_creating_list_of_attributes.list_of_media_types_are_of_type_nmtoken" executed="True" success="True" time="0.001" asserts="1" />
-              <test-case name="XhtmlDOM_Specification.when_creating_list_of_attributes.only_attributes_in_the_initial_list_can_be_added" executed="True" success="True" time="0.011" asserts="2" />
+      <test-suite name="HttpListener environment" executed="True" success="True" time="5.823" asserts="0">
+        <results>
+          <test-suite name="accessing the homepage" executed="True" success="True" time="3.456" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml" executed="True" success="True" time="3.439" asserts="3" />
+            </results>
+          </test-suite>
+          <test-suite name="manipulating users" executed="True" success="True" time="1.037" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_create_a_user" executed="True" success="True" time="0.835" asserts="4" />
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials" executed="True" success="True" time="0.178" asserts="1" />
+              <test-case name="OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials" executed="True" success="True" time="0.022" asserts="1" />
+            </results>
+          </test-suite>
+          <test-suite name="uploading files" executed="True" success="True" time="0.190" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_a_complex_type" executed="True" success="True" time="0.096" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_app_octet_stream" executed="True" success="True" time="0.000" asserts="0" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_enumerable_multipart" executed="True" success="True" time="0.061" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_ifile" executed="True" success="True" time="0.019" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_file_with_specific_content_type" executed="True" success="True" time="0.011" asserts="10002" />
+            </results>
+          </test-suite>
+        </results>
+      </test-suite>
+      <test-suite name="IIS 7 - Classic Mode" executed="True" success="False" time="6.924" asserts="0">
+        <results>
+          <test-suite name="accessing the homepage" executed="True" success="False" time="3.697" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml" executed="True" success="False" time="3.696" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\accessing_the_homepage.cs:line 21
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="manipulating users" executed="True" success="False" time="0.031" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_create_a_user" executed="True" success="False" time="0.021" asserts="0">
+                <failure>
+                  <message><![CDATA[System.InvalidOperationException : There is an error in XML document (1, 2).
+  ----> System.InvalidOperationException : <html xmlns=''> was not expected.]]></message>
+                  <stack-trace><![CDATA[at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
+at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
+at OpenBastard.Scenarios.manipulating_users.when_retrieving_the_response_as_xml[T]() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 68
+at OpenBastard.Scenarios.manipulating_users.can_create_a_user() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 28
+--InvalidOperationException
+at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderUser.Read4_User()
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials" executed="True" success="False" time="0.003" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 52
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials" executed="True" success="False" time="0.002" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 401
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 42
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="uploading files" executed="True" success="False" time="0.023" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_a_complex_type" executed="True" success="False" time="0.003" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_app_octet_stream" executed="True" success="True" time="0.000" asserts="0" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_enumerable_multipart" executed="True" success="False" time="0.004" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_ifile" executed="True" success="False" time="0.011" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_file_with_specific_content_type" executed="True" success="False" time="0.003" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+        </results>
+      </test-suite>
+      <test-suite name="IIS 7 - Classic Mode Medium Trust" executed="True" success="False" time="7.059" asserts="0">
+        <results>
+          <test-suite name="accessing the homepage" executed="True" success="False" time="3.987" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml" executed="True" success="False" time="3.987" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\accessing_the_homepage.cs:line 21
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="manipulating users" executed="True" success="False" time="0.017" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_create_a_user" executed="True" success="False" time="0.006" asserts="0">
+                <failure>
+                  <message><![CDATA[System.InvalidOperationException : There is an error in XML document (1, 2).
+  ----> System.InvalidOperationException : <html xmlns=''> was not expected.]]></message>
+                  <stack-trace><![CDATA[at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
+at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
+at OpenBastard.Scenarios.manipulating_users.when_retrieving_the_response_as_xml[T]() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 68
+at OpenBastard.Scenarios.manipulating_users.can_create_a_user() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 28
+--InvalidOperationException
+at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderUser.Read4_User()
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials" executed="True" success="False" time="0.004" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 52
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials" executed="True" success="False" time="0.002" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 401
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 42
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="uploading files" executed="True" success="False" time="0.013" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_a_complex_type" executed="True" success="False" time="0.003" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_app_octet_stream" executed="True" success="True" time="0.000" asserts="0" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_enumerable_multipart" executed="True" success="False" time="0.003" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_ifile" executed="True" success="False" time="0.004" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_file_with_specific_content_type" executed="True" success="False" time="0.002" asserts="1">
+                <failure>
+                  <message><![CDATA[  Expected: 200
+  But was:  500
+]]></message>
+                  <stack-trace><![CDATA[at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 41
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+        </results>
+      </test-suite>
+      <test-suite name="IIS 7 - Integrated Mode" executed="True" success="False" time="25.165" asserts="0">
+        <results>
+          <test-suite name="accessing the homepage" executed="True" success="False" time="2.085" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml" executed="True" success="False" time="2.084" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetResponse()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 41
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\accessing_the_homepage.cs:line 20
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="manipulating users" executed="True" success="False" time="6.022" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_create_a_user" executed="True" success="False" time="2.004" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
+at System.Net.HttpWebRequest.GetRequestStream()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ConvertRequestToWebClient(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 70
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 31
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.manipulating_users.when_retrieving_the_response_as_xml[T]() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 67
+at OpenBastard.Scenarios.manipulating_users.can_create_a_user() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 28
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials" executed="True" success="False" time="2.001" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetResponse()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 41
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 52
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials" executed="True" success="False" time="2.017" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetResponse()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 41
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\manipulating_users.cs:line 42
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+          <test-suite name="uploading files" executed="True" success="False" time="8.084" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_a_complex_type" executed="True" success="False" time="2.082" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
+at System.Net.HttpWebRequest.GetRequestStream()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ConvertRequestToWebClient(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 70
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 31
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 39
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_app_octet_stream" executed="True" success="True" time="0.000" asserts="0" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_enumerable_multipart" executed="True" success="False" time="2.000" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
+at System.Net.HttpWebRequest.GetRequestStream()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ConvertRequestToWebClient(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 70
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 31
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 39
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_ifile" executed="True" success="False" time="2.000" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
+at System.Net.HttpWebRequest.GetRequestStream()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ConvertRequestToWebClient(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 70
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 31
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 39
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_file_with_specific_content_type" executed="True" success="False" time="2.002" asserts="0">
+                <failure>
+                  <message><![CDATA[System.Net.WebException : Unable to connect to the remote server
+  ----> System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:498]]></message>
+                  <stack-trace><![CDATA[at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
+at System.Net.HttpWebRequest.GetRequestStream()
+at OpenBastard.Environments.HttpWebRequestEnvironment.ConvertRequestToWebClient(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 70
+at OpenBastard.Environments.HttpWebRequestEnvironment.ExecuteRequest(IClientRequest request) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Environments\HttpWebRequestEnvironment.cs:line 31
+at environment_context.when_retrieving_the_response() in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Infrastructure\SuiteProvider.cs:line 138
+at OpenBastard.Scenarios.uploading_files.can_upload_a_file(String uri, String mediaType) in c:\src\caff\openrasta\trunk\src\openbastard\OpenBastard.TestRunner\Scenarios\uploading_files.cs:line 39
+--SocketException
+at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
+at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
+]]></stack-trace>
+                </failure>
+              </test-case>
+            </results>
+          </test-suite>
+        </results>
+      </test-suite>
+      <test-suite name="In memory environment" executed="True" success="True" time="0.232" asserts="0">
+        <results>
+          <test-suite name="accessing the homepage" executed="True" success="True" time="0.018" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.accessing_the_homepage.the_homepage_can_be_retrieved_using_xml" executed="True" success="True" time="0.018" asserts="3" />
+            </results>
+          </test-suite>
+          <test-suite name="manipulating users" executed="True" success="True" time="0.039" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_create_a_user" executed="True" success="True" time="0.012" asserts="4" />
+              <test-case name="OpenBastard.Scenarios.manipulating_users.can_delete_user_with_correct_credentials" executed="True" success="True" time="0.017" asserts="1" />
+              <test-case name="OpenBastard.Scenarios.manipulating_users.cannot_delete_user_with_wrong_credentials" executed="True" success="True" time="0.006" asserts="1" />
+            </results>
+          </test-suite>
+          <test-suite name="uploading files" executed="True" success="True" time="0.140" asserts="0">
+            <results>
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_a_complex_type" executed="True" success="True" time="0.023" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_app_octet_stream" executed="True" success="True" time="0.000" asserts="0" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_enumerable_multipart" executed="True" success="True" time="0.027" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_a_file_as_an_ifile" executed="True" success="True" time="0.032" asserts="10002" />
+              <test-case name="OpenBastard.Scenarios.uploading_files.can_upload_file_with_specific_content_type" executed="True" success="True" time="0.040" asserts="10002" />
             </results>
           </test-suite>
