From 32ed3dbb46b9ed3a65246065a1a13f3f8bc8c477 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Sat, 2 Mar 2013 11:31:18 -0800 Subject: [PATCH] removed TvdbLib.dll using the embedded wattvdb.codeplex.com --- .../Autofac.Integration.Mvc.csproj | 118 + .../AutofacDependencyResolver.cs | 164 + .../AutofacFilterProvider.cs | 171 + .../AutofacModelBinderProvider.cs | 59 + .../AutofacWebTypesModule.cs | 178 + .../ExtensibleActionInvoker.cs | 87 + Autofac.Integration.Mvc/FilterMetadata.cs | 62 + .../ILifetimeScopeProvider.cs | 56 + .../ModelBinderTypeAttribute.cs | 64 + .../PreApplicationStartCode.cs | 51 + .../Properties/AssemblyInfo.cs | 12 + .../RegistrationExtensions.cs | 510 + ...egistrationExtensionsResources.Designer.cs | 90 + .../RegistrationExtensionsResources.resx | 129 + .../RequestLifetimeHttpModule.cs | 79 + .../RequestLifetimeScopeProvider.cs | 122 + ...LifetimeScopeProviderResources.Designer.cs | 81 + ...RequestLifetimeScopeProviderResources.resx | 126 + .../ViewRegistrationSource.cs | 78 + Autofac.Integration.Mvc/packages.config | 8 + Libraries/CTT/ctt.exe | Bin 0 -> 561152 bytes Libraries/CTT/ctt.exe.config | 53 + Libraries/DeskMetrics/DeskMetrics.NET.dll | Bin 0 -> 21504 bytes Libraries/DeskMetrics/DeskMetrics.NET.pdb | Bin 0 -> 50688 bytes Libraries/DeskMetrics/DeskMetrics.NET.xml | 208 + Libraries/Exceptioneer.WindowsFormsClient.dll | Bin 0 -> 42496 bytes .../MVC3/Microsoft.Web.Infrastructure.dll | Bin 0 -> 45416 bytes .../MVC3/Microsoft.Web.Infrastructure.xml | 19 + Libraries/MVC3/System.Web.Helpers.dll | Bin 0 -> 130408 bytes Libraries/MVC3/System.Web.Helpers.xml | 636 ++ Libraries/MVC3/System.Web.Mvc.dll | Bin 0 -> 445280 bytes Libraries/MVC3/System.Web.Mvc.xml | 9395 +++++++++++++++++ Libraries/MVC3/System.Web.Razor.dll | Bin 0 -> 178536 bytes Libraries/MVC3/System.Web.Razor.xml | 866 ++ .../MVC3/System.Web.WebPages.Deployment.dll | Bin 0 -> 25960 bytes .../MVC3/System.Web.WebPages.Deployment.xml | 16 + Libraries/MVC3/System.Web.WebPages.Razor.dll | Bin 0 -> 37224 bytes Libraries/MVC3/System.Web.WebPages.Razor.xml | 71 + Libraries/MVC3/System.Web.WebPages.dll | Bin 0 -> 136552 bytes Libraries/MVC3/System.Web.WebPages.xml | 884 ++ Libraries/VCB/AutoVer.exe | Bin 0 -> 73728 bytes Libraries/VCB/CommandLine.txt | 203 + Libraries/VCB/Configurator.exe | Bin 0 -> 16384 bytes Libraries/VCB/MultiTabColorPicker.dll | Bin 0 -> 36864 bytes Libraries/VCB/Shared.InstallState | 51 + Libraries/VCB/Shared.dll | Bin 0 -> 475136 bytes NzbDrone.6.1.ReSharper | 148 + 47 files changed, 14795 insertions(+) create mode 100644 Autofac.Integration.Mvc/Autofac.Integration.Mvc.csproj create mode 100644 Autofac.Integration.Mvc/AutofacDependencyResolver.cs create mode 100644 Autofac.Integration.Mvc/AutofacFilterProvider.cs create mode 100644 Autofac.Integration.Mvc/AutofacModelBinderProvider.cs create mode 100644 Autofac.Integration.Mvc/AutofacWebTypesModule.cs create mode 100644 Autofac.Integration.Mvc/ExtensibleActionInvoker.cs create mode 100644 Autofac.Integration.Mvc/FilterMetadata.cs create mode 100644 Autofac.Integration.Mvc/ILifetimeScopeProvider.cs create mode 100644 Autofac.Integration.Mvc/ModelBinderTypeAttribute.cs create mode 100644 Autofac.Integration.Mvc/PreApplicationStartCode.cs create mode 100644 Autofac.Integration.Mvc/Properties/AssemblyInfo.cs create mode 100644 Autofac.Integration.Mvc/RegistrationExtensions.cs create mode 100644 Autofac.Integration.Mvc/RegistrationExtensionsResources.Designer.cs create mode 100644 Autofac.Integration.Mvc/RegistrationExtensionsResources.resx create mode 100644 Autofac.Integration.Mvc/RequestLifetimeHttpModule.cs create mode 100644 Autofac.Integration.Mvc/RequestLifetimeScopeProvider.cs create mode 100644 Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.Designer.cs create mode 100644 Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.resx create mode 100644 Autofac.Integration.Mvc/ViewRegistrationSource.cs create mode 100644 Autofac.Integration.Mvc/packages.config create mode 100644 Libraries/CTT/ctt.exe create mode 100644 Libraries/CTT/ctt.exe.config create mode 100644 Libraries/DeskMetrics/DeskMetrics.NET.dll create mode 100644 Libraries/DeskMetrics/DeskMetrics.NET.pdb create mode 100644 Libraries/DeskMetrics/DeskMetrics.NET.xml create mode 100644 Libraries/Exceptioneer.WindowsFormsClient.dll create mode 100644 Libraries/MVC3/Microsoft.Web.Infrastructure.dll create mode 100644 Libraries/MVC3/Microsoft.Web.Infrastructure.xml create mode 100644 Libraries/MVC3/System.Web.Helpers.dll create mode 100644 Libraries/MVC3/System.Web.Helpers.xml create mode 100644 Libraries/MVC3/System.Web.Mvc.dll create mode 100644 Libraries/MVC3/System.Web.Mvc.xml create mode 100644 Libraries/MVC3/System.Web.Razor.dll create mode 100644 Libraries/MVC3/System.Web.Razor.xml create mode 100644 Libraries/MVC3/System.Web.WebPages.Deployment.dll create mode 100644 Libraries/MVC3/System.Web.WebPages.Deployment.xml create mode 100644 Libraries/MVC3/System.Web.WebPages.Razor.dll create mode 100644 Libraries/MVC3/System.Web.WebPages.Razor.xml create mode 100644 Libraries/MVC3/System.Web.WebPages.dll create mode 100644 Libraries/MVC3/System.Web.WebPages.xml create mode 100644 Libraries/VCB/AutoVer.exe create mode 100644 Libraries/VCB/CommandLine.txt create mode 100644 Libraries/VCB/Configurator.exe create mode 100644 Libraries/VCB/MultiTabColorPicker.dll create mode 100644 Libraries/VCB/Shared.InstallState create mode 100644 Libraries/VCB/Shared.dll create mode 100644 NzbDrone.6.1.ReSharper diff --git a/Autofac.Integration.Mvc/Autofac.Integration.Mvc.csproj b/Autofac.Integration.Mvc/Autofac.Integration.Mvc.csproj new file mode 100644 index 000000000..d3b39d592 --- /dev/null +++ b/Autofac.Integration.Mvc/Autofac.Integration.Mvc.csproj @@ -0,0 +1,118 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {DD874E64-C7EC-464D-925F-CF4A709EDEEF} + Library + Properties + Autofac.Integration.Mvc + Autofac.Integration.Mvc + v4.0 + 512 + ..\..\..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Build\Full.ruleset + false + bin\Debug\Autofac.Integration.Mvc.xml + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + ..\..\..\Build\Full.ruleset + false + bin\Release\Autofac.Integration.Mvc.xml + false + + + false + + + ..\..\..\Build\SharedKey.snk + + + + ..\packages\Autofac.3.0.1\lib\net40\Autofac.dll + + + False + ..\Libraries\MVC3\Microsoft.Web.Infrastructure.dll + + + + + + False + ..\Libraries\MVC3\System.Web.Mvc.dll + + + False + ..\Libraries\MVC3\System.Web.WebPages.dll + + + + + + + + + + True + True + RegistrationExtensionsResources.resx + + + + + + + + + + + True + True + RequestLifetimeScopeProviderResources.resx + + + + + + ResXFileCodeGenerator + RegistrationExtensionsResources.Designer.cs + + + ResXFileCodeGenerator + RequestLifetimeScopeProviderResources.Designer.cs + Designer + + + + + + + + + \ No newline at end of file diff --git a/Autofac.Integration.Mvc/AutofacDependencyResolver.cs b/Autofac.Integration.Mvc/AutofacDependencyResolver.cs new file mode 100644 index 000000000..e46a2c2a1 --- /dev/null +++ b/Autofac.Integration.Mvc/AutofacDependencyResolver.cs @@ -0,0 +1,164 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Web.Mvc; + +namespace Autofac.Integration.Mvc +{ + /// + /// Autofac implementation of the interface. + /// + public class AutofacDependencyResolver : IDependencyResolver + { + readonly ILifetimeScope _container; + readonly Action _configurationAction; + ILifetimeScopeProvider _lifetimeScopeProvider; + + /// + /// Initializes a new instance of the class. + /// + /// The container that nested lifetime scopes will be create from. + public AutofacDependencyResolver(ILifetimeScope container) + { + if (container == null) throw new ArgumentNullException("container"); + _container = container; + } + + /// + /// Initializes a new instance of the class. + /// + /// The container that nested lifetime scopes will be create from. + /// Action on a + /// that adds component registations visible only in nested lifetime scopes. + public AutofacDependencyResolver(ILifetimeScope container, Action configurationAction) + : this(container) + { + if (configurationAction == null) throw new ArgumentNullException("configurationAction"); + _configurationAction = configurationAction; + } + + /// + /// Initializes a new instance of the class. + /// + /// The container that nested lifetime scopes will be create from. + /// A implementation for + /// creating new lifetime scopes. + public AutofacDependencyResolver(ILifetimeScope container, ILifetimeScopeProvider lifetimeScopeProvider) : + this(container) + { + if (lifetimeScopeProvider == null) throw new ArgumentNullException("lifetimeScopeProvider"); + _lifetimeScopeProvider = lifetimeScopeProvider; + } + + /// + /// Initializes a new instance of the class. + /// + /// The container that nested lifetime scopes will be create from. + /// A implementation for + /// creating new lifetime scopes. + /// Action on a + /// that adds component registations visible only in nested lifetime scopes. + public AutofacDependencyResolver(ILifetimeScope container, ILifetimeScopeProvider lifetimeScopeProvider, Action configurationAction) + : this(container, lifetimeScopeProvider) + { + if (configurationAction == null) throw new ArgumentNullException("configurationAction"); + _configurationAction = configurationAction; + } + + /// + /// Gets the Autofac implementation of the dependency resolver. + /// + public static AutofacDependencyResolver Current + { + get + { + // Issue 351: We can't necessarily cast the current dependency resolver + // to AutofacDependencyResolver because diagnostic systems like Glimpse + // will wrap/proxy the resolver. Instead we need to register the resolver + // on the fly with the request lifetime scope and resolve it accordingly. + return DependencyResolver.Current.GetService(); + } + } + + /// + /// The lifetime containing components for processing the current HTTP request. + /// + public ILifetimeScope RequestLifetimeScope + { + get + { + // Issue 351: Register the AutofacDependencyResolver with + // the request lifetime scope so the current resolver can + // be retrieved without having to cast it directly to + // this specific type. + Action composite = builder => + { + if (this._configurationAction != null) + { + this._configurationAction(builder); + } + builder.RegisterInstance(this).As(); + }; + if (_lifetimeScopeProvider == null) + { + _lifetimeScopeProvider = new RequestLifetimeScopeProvider(_container); + } + return _lifetimeScopeProvider.GetLifetimeScope(composite); + } + } + + /// + /// Gets the application container that was provided to the constructor. + /// + public ILifetimeScope ApplicationContainer + { + get { return _container; } + } + + /// + /// Get a single instance of a service. + /// + /// Type of the service. + /// The single instance if resolved; otherwise, null. + public object GetService(Type serviceType) + { + return RequestLifetimeScope.ResolveOptional(serviceType); + } + + /// + /// Gets all available instances of a services. + /// + /// Type of the service. + /// The list of instances if any were resolved; otherwise, an empty list. + public IEnumerable GetServices(Type serviceType) + { + var enumerableServiceType = typeof(IEnumerable<>).MakeGenericType(serviceType); + var instance = RequestLifetimeScope.Resolve(enumerableServiceType); + return (IEnumerable)instance; + } + } +} diff --git a/Autofac.Integration.Mvc/AutofacFilterProvider.cs b/Autofac.Integration.Mvc/AutofacFilterProvider.cs new file mode 100644 index 000000000..c6ad44cae --- /dev/null +++ b/Autofac.Integration.Mvc/AutofacFilterProvider.cs @@ -0,0 +1,171 @@ +// This software is part of the Autofac IoC container +// Copyright © 2012 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Web.Mvc; +using System.Web.Mvc.Async; +using Autofac.Features.Metadata; + +namespace Autofac.Integration.Mvc +{ + /// + /// Defines a filter provider for filter attributes that performs property injection. + /// + public class AutofacFilterProvider : FilterAttributeFilterProvider + { + class FilterContext + { + public ActionDescriptor ActionDescriptor { get; set; } + public ILifetimeScope LifetimeScope { get; set; } + public Type ControllerType { get; set; } + public List Filters { get; set; } + } + + internal static string ActionFilterMetadataKey = "AutofacMvcActionFilter"; + + internal static string AuthorizationFilterMetadataKey = "AutofacMvcAuthorizationFilter"; + + internal static string ExceptionFilterMetadataKey = "AutofacMvcExceptionFilter"; + + internal static string ResultFilterMetadataKey = "AutofacMvcResultFilter"; + + /// + /// Initializes a new instance of the class. + /// + /// + /// The false constructor parameter passed to base here ensures that attribute instances are not cached. + /// + public AutofacFilterProvider() : base(false) + { + } + + /// + /// Aggregates the filters from all of the filter providers into one collection. + /// + /// The controller context. + /// The action descriptor. + /// + /// The collection filters from all of the filter providers with properties injected. + /// + /// + /// Thrown if is . + /// + public override IEnumerable GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) + { + if (controllerContext == null) + { + throw new ArgumentNullException("controllerContext"); + } + var filters = base.GetFilters(controllerContext, actionDescriptor).ToList(); + var lifetimeScope = AutofacDependencyResolver.Current.RequestLifetimeScope; + + if (lifetimeScope != null) + { + foreach (var filter in filters) + lifetimeScope.InjectProperties(filter.Instance); + + var controllerType = controllerContext.Controller.GetType(); + + var filterContext = new FilterContext + { + ActionDescriptor = actionDescriptor, + LifetimeScope = lifetimeScope, + ControllerType = controllerType, + Filters = filters + }; + + ResolveControllerScopedFilters(filterContext); + + ResolveActionScopedFilters(filterContext, d => d.MethodInfo); + ResolveActionScopedFilters(filterContext, d => d.AsyncMethodInfo); + } + + return filters.ToArray(); + } + + static void ResolveControllerScopedFilters(FilterContext filterContext) + { + ResolveControllerScopedFilter(filterContext, ActionFilterMetadataKey); + ResolveControllerScopedFilter(filterContext, AuthorizationFilterMetadataKey); + ResolveControllerScopedFilter(filterContext, ExceptionFilterMetadataKey); + ResolveControllerScopedFilter(filterContext, ResultFilterMetadataKey); + } + + static void ResolveControllerScopedFilter(FilterContext filterContext, string metadataKey) + where TFilter : class + { + var actionFilters = filterContext.LifetimeScope.Resolve>>>(); + + foreach (var actionFilter in actionFilters.Where(a => a.Metadata.ContainsKey(metadataKey) && a.Metadata[metadataKey] is FilterMetadata)) + { + var metadata = (FilterMetadata)actionFilter.Metadata[metadataKey]; + if (metadata.ControllerType != null + && metadata.ControllerType.IsAssignableFrom(filterContext.ControllerType) + && metadata.FilterScope == FilterScope.Controller + && metadata.MethodInfo == null) + { + var filter = new Filter(actionFilter.Value.Value, FilterScope.Controller, metadata.Order); + filterContext.Filters.Add(filter); + } + } + } + + static void ResolveActionScopedFilters(FilterContext filterContext, Func methodSelector) + where T : ActionDescriptor + { + var actionDescriptor = filterContext.ActionDescriptor as T; + if (actionDescriptor == null) return; + + var methodInfo = methodSelector(actionDescriptor); + + ResolveActionScopedFilter(filterContext, methodInfo, ActionFilterMetadataKey); + ResolveActionScopedFilter(filterContext, methodInfo, AuthorizationFilterMetadataKey); + ResolveActionScopedFilter(filterContext, methodInfo, ExceptionFilterMetadataKey); + ResolveActionScopedFilter(filterContext, methodInfo, ResultFilterMetadataKey); + } + + static void ResolveActionScopedFilter(FilterContext filterContext, MethodInfo methodInfo, string metadataKey) + where TFilter : class + { + var actionFilters = filterContext.LifetimeScope.Resolve>>>(); + + foreach (var actionFilter in actionFilters.Where(a => a.Metadata.ContainsKey(metadataKey) && a.Metadata[metadataKey] is FilterMetadata)) + { + var metadata = (FilterMetadata)actionFilter.Metadata[metadataKey]; + if (metadata.ControllerType != null + && metadata.ControllerType.IsAssignableFrom(filterContext.ControllerType) + && metadata.FilterScope == FilterScope.Action + && metadata.MethodInfo.GetBaseDefinition() == methodInfo.GetBaseDefinition()) + { + var filter = new Filter(actionFilter.Value.Value, FilterScope.Action, metadata.Order); + filterContext.Filters.Add(filter); + } + } + } + } +} diff --git a/Autofac.Integration.Mvc/AutofacModelBinderProvider.cs b/Autofac.Integration.Mvc/AutofacModelBinderProvider.cs new file mode 100644 index 000000000..3323ee4f4 --- /dev/null +++ b/Autofac.Integration.Mvc/AutofacModelBinderProvider.cs @@ -0,0 +1,59 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Mvc; +using Autofac.Features.Metadata; + +namespace Autofac.Integration.Mvc +{ + /// + /// Autofac implementation of the interface. + /// + public class AutofacModelBinderProvider : IModelBinderProvider + { + /// + /// Metadata key for the supported model types. + /// + internal static readonly string MetadataKey = "SupportedModelTypes"; + + /// + /// Gets the model binder associated with the provided model type. + /// + /// Type of the model. + /// An instance if found; otherwise, null. + public IModelBinder GetBinder(Type modelType) + { + var modelBinders = DependencyResolver.Current.GetServices>>(); + + var modelBinder = modelBinders + .Where(binder => binder.Metadata.ContainsKey(MetadataKey)) + .FirstOrDefault(binder => ((List)binder.Metadata[MetadataKey]).Contains(modelType)); + return (modelBinder != null) ? modelBinder.Value.Value : null; + } + } +} \ No newline at end of file diff --git a/Autofac.Integration.Mvc/AutofacWebTypesModule.cs b/Autofac.Integration.Mvc/AutofacWebTypesModule.cs new file mode 100644 index 000000000..b362b0564 --- /dev/null +++ b/Autofac.Integration.Mvc/AutofacWebTypesModule.cs @@ -0,0 +1,178 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System.Web; +using System.Web.Hosting; +using System.Web.Mvc; +using System.Web.Routing; + +namespace Autofac.Integration.Mvc +{ + /// + /// Dependency injection module that registers abstractions for common + /// web application properties. + /// + /// + /// + /// This is primarily used during + /// application startup (in Global.asax) to register + /// mappings from commonly referenced contextual application properties + /// to their corresponding abstraction. + /// + /// + /// The following mappings are made: + /// + /// + /// + /// Common Construct + /// Abstraction + /// + /// + /// HttpContext.Current + /// + /// + /// + /// HttpContext.Current.Application + /// + /// + /// + /// HttpContext.Current.Request + /// + /// + /// + /// HttpContext.Current.Request.Browser + /// + /// + /// + /// HttpContext.Current.Request.Files + /// + /// + /// + /// HttpContext.Current.Request.RequestContext + /// + /// + /// + /// HttpContext.Current.Response + /// + /// + /// + /// HttpContext.Current.Response.Cache + /// + /// + /// + /// HttpContext.Current.Server + /// + /// + /// + /// HttpContext.Current.Session + /// + /// + /// + /// HostingEnvironment.VirtualPathProvider + /// + /// + /// + /// + /// In addition, the type is registered + /// for construction based on the current . + /// + /// + /// The lifetime for each of these items is one web request. + /// + /// + public class AutofacWebTypesModule : Module + { + /// + /// Registers web abstractions with dependency injection. + /// + /// + /// The in which registration + /// should take place. + /// + /// + /// + /// This method registers mappings between common current context-related + /// web constructs and their associated abstract counterparts. See + /// for the complete + /// list of mappings that get registered. + /// + /// + protected override void Load(ContainerBuilder builder) + { + builder.Register(c => new HttpContextWrapper(HttpContext.Current)) + .As() + .InstancePerHttpRequest(); + + // HttpContext properties + builder.Register(c => c.Resolve().Request) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().Response) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().Server) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().Session) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().Application) + .As() + .InstancePerHttpRequest(); + + // HttpRequest properties + builder.Register(c => c.Resolve().Browser) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().Files) + .As() + .InstancePerHttpRequest(); + + builder.Register(c => c.Resolve().RequestContext) + .As() + .InstancePerHttpRequest(); + + // HttpResponse properties + builder.Register(c => c.Resolve().Cache) + .As() + .InstancePerHttpRequest(); + + // HostingEnvironment properties + builder.Register(c => HostingEnvironment.VirtualPathProvider) + .As() + .InstancePerHttpRequest(); + + // MVC types + builder.Register(c => new UrlHelper(c.Resolve())) + .As() + .InstancePerHttpRequest(); + } + } +} diff --git a/Autofac.Integration.Mvc/ExtensibleActionInvoker.cs b/Autofac.Integration.Mvc/ExtensibleActionInvoker.cs new file mode 100644 index 000000000..179d72f3a --- /dev/null +++ b/Autofac.Integration.Mvc/ExtensibleActionInvoker.cs @@ -0,0 +1,87 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Web.Mvc; + +namespace Autofac.Integration.Mvc +{ + /// + /// Injects services from the container into the ASP.NET MVC invocation pipeline. + /// This is a Async Controller Action Invoker which can be used for both async and non-async scenarios + /// + /// + /// + /// Action methods can include parameters that will be resolved from the + /// container, along with regular parameters. + /// + /// + public class ExtensibleActionInvoker : System.Web.Mvc.Async.AsyncControllerActionInvoker + { + /// + /// Gets the parameter value. + /// + /// The controller context.The parameter descriptor. + /// + /// The parameter value. + /// + /// + /// Thrown if is . + /// + protected override object GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) + { + if (parameterDescriptor == null) + { + throw new ArgumentNullException("parameterDescriptor"); + } + + // Only resolve parameter values if injection is enabled. + var context = AutofacDependencyResolver.Current.RequestLifetimeScope; + var value = context.ResolveOptional(parameterDescriptor.ParameterType); + + if (value == null) + { + // Issue #368 + // If injection is enabled and the value can't be resolved, fall back to + // the default behavior. Or if injection isn't enabled, fall back. + // Unfortunately we can't do much to pre-determine if model binding will succeed + // because model binding "knows" about a lot of stuff like arrays, certain generic + // collection types, type converters, and other stuff that may or may not fail. + try + { + value = base.GetParameterValue(controllerContext, parameterDescriptor); + } + catch (MissingMethodException) + { + // Don't do anything - this means the default model binder couldn't + // activate a new instance or figure out some other way to model + // bind it. + } + } + + return value; + } + } +} \ No newline at end of file diff --git a/Autofac.Integration.Mvc/FilterMetadata.cs b/Autofac.Integration.Mvc/FilterMetadata.cs new file mode 100644 index 000000000..e7bda5bfb --- /dev/null +++ b/Autofac.Integration.Mvc/FilterMetadata.cs @@ -0,0 +1,62 @@ +// This software is part of the Autofac IoC container +// Copyright © 2012 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Web.Mvc; + +namespace Autofac.Integration.Mvc +{ + /// + /// Metadata interface for filter registrations. + /// + internal class FilterMetadata + { + /// + /// Gets the type of the controller. + /// + [DefaultValue(null)] + public Type ControllerType { get; set; } + + /// + /// Gets the filter scope. + /// + [DefaultValue(FilterScope.First)] + public FilterScope FilterScope { get; set; } + + /// + /// Gets the method info. + /// + [DefaultValue(null)] + public MethodInfo MethodInfo { get; set; } + + /// + /// Gets the order in which the filter is applied. + /// + [DefaultValue(-1)] + public int Order { get; set; } + } +} \ No newline at end of file diff --git a/Autofac.Integration.Mvc/ILifetimeScopeProvider.cs b/Autofac.Integration.Mvc/ILifetimeScopeProvider.cs new file mode 100644 index 000000000..b55174d17 --- /dev/null +++ b/Autofac.Integration.Mvc/ILifetimeScopeProvider.cs @@ -0,0 +1,56 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Diagnostics.CodeAnalysis; + +namespace Autofac.Integration.Mvc +{ + /// + /// Implementors are able to control the creation of nested lifetime scopes. + /// + public interface ILifetimeScopeProvider + { + /// + /// Gets a nested lifetime scope that services can be resolved from. + /// + /// + /// A configuration action that will execute during lifetime scope creation. + /// + /// A new or existing nested lifetime scope. + [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")] + ILifetimeScope GetLifetimeScope(Action configurationAction); + + /// + /// Ends the current lifetime scope. + /// + void EndLifetimeScope(); + + /// + /// Gets the global, application-wide container. + /// + ILifetimeScope ApplicationContainer { get; } + } +} \ No newline at end of file diff --git a/Autofac.Integration.Mvc/ModelBinderTypeAttribute.cs b/Autofac.Integration.Mvc/ModelBinderTypeAttribute.cs new file mode 100644 index 000000000..cd2537ae7 --- /dev/null +++ b/Autofac.Integration.Mvc/ModelBinderTypeAttribute.cs @@ -0,0 +1,64 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace Autofac.Integration.Mvc +{ + /// + /// Indicates what types a model binder supports. + /// + [SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments")] + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)] + public sealed class ModelBinderTypeAttribute : Attribute + { + /// + /// Gets the target types. + /// + public IEnumerable TargetTypes { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// The target types. + public ModelBinderTypeAttribute(params Type[] targetTypes) + { + if (targetTypes == null) throw new ArgumentNullException("targetTypes"); + TargetTypes = targetTypes; + } + + /// + /// Initializes a new instance of the class. + /// + /// The target type. + public ModelBinderTypeAttribute(Type targetType) + { + if (targetType == null) throw new ArgumentNullException("targetType"); + TargetTypes = new Type[] { targetType }; + } + } +} diff --git a/Autofac.Integration.Mvc/PreApplicationStartCode.cs b/Autofac.Integration.Mvc/PreApplicationStartCode.cs new file mode 100644 index 000000000..cc196b096 --- /dev/null +++ b/Autofac.Integration.Mvc/PreApplicationStartCode.cs @@ -0,0 +1,51 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System.ComponentModel; +using Microsoft.Web.Infrastructure.DynamicModuleHelper; + +namespace Autofac.Integration.Mvc +{ + /// + /// Container class for the ASP.NET application startup method. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static class PreApplicationStartCode + { + private static bool _startWasCalled; + + /// + /// Performs ASP.NET application startup logic early in the pipeline. + /// + public static void Start() + { + // Guard against multiple calls. All Start calls are made on the same thread, so no lock needed here. + if (_startWasCalled) return; + + _startWasCalled = true; + DynamicModuleUtility.RegisterModule(typeof(RequestLifetimeHttpModule)); + } + } +} diff --git a/Autofac.Integration.Mvc/Properties/AssemblyInfo.cs b/Autofac.Integration.Mvc/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..4ba3cc441 --- /dev/null +++ b/Autofac.Integration.Mvc/Properties/AssemblyInfo.cs @@ -0,0 +1,12 @@ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Web; +using Autofac.Integration.Mvc; + +[assembly: AssemblyTitle("Autofac.Integration.Mvc")] +[assembly: AssemblyDescription("Autofac ASP.NET MVC 4 Integration")] +[assembly: InternalsVisibleTo("Autofac.Tests.Integration.Mvc, PublicKey=00240000048000009400000006020000002400005253413100040000010001008728425885ef385e049261b18878327dfaaf0d666dea3bd2b0e4f18b33929ad4e5fbc9087e7eda3c1291d2de579206d9b4292456abffbe8be6c7060b36da0c33b883e3878eaf7c89fddf29e6e27d24588e81e86f3a22dd7b1a296b5f06fbfb500bbd7410faa7213ef4e2ce7622aefc03169b0324bcd30ccfe9ac8204e4960be6")] +[assembly: PreApplicationStartMethod(typeof(PreApplicationStartCode), "Start")] +[assembly: ComVisible(false)] diff --git a/Autofac.Integration.Mvc/RegistrationExtensions.cs b/Autofac.Integration.Mvc/RegistrationExtensions.cs new file mode 100644 index 000000000..f1f5c4cd1 --- /dev/null +++ b/Autofac.Integration.Mvc/RegistrationExtensions.cs @@ -0,0 +1,510 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Web; +using System.Web.Mvc; +using Autofac.Builder; +using Autofac.Core; +using Autofac.Features.Scanning; + +namespace Autofac.Integration.Mvc +{ + /// + /// Extends with methods to support ASP.NET MVC. + /// + public static class RegistrationExtensions + { + /// + /// Share one instance of the component within the context of a single + /// HTTP request. + /// + /// Registration limit type. + /// Registration style. + /// Activator data type. + /// The registration to configure. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + InstancePerHttpRequest( + this IRegistrationBuilder registration) + { + if (registration == null) throw new ArgumentNullException("registration"); + + return registration.InstancePerMatchingLifetimeScope(RequestLifetimeScopeProvider.HttpRequestTag); + } + + /// + /// Register types that implement IController in the provided assemblies. + /// + /// The container builder. + /// Assemblies to scan for controllers. + /// Registration builder allowing the controller components to be customised. + public static IRegistrationBuilder + RegisterControllers( + this ContainerBuilder builder, + params Assembly[] controllerAssemblies) + { + return builder.RegisterAssemblyTypes(controllerAssemblies) + .Where(t => typeof(IController).IsAssignableFrom(t) && + t.Name.EndsWith("Controller", StringComparison.Ordinal)); + } + + /// + /// Inject an IActionInvoker into the controller's ActionInvoker property. + /// + /// Limit type. + /// Activator data. + /// Registration style. + /// The registration builder. + /// A registration builder. + public static IRegistrationBuilder + InjectActionInvoker( + this IRegistrationBuilder registrationBuilder) + { + return registrationBuilder.InjectActionInvoker(new TypedService(typeof(IActionInvoker))); + } + + /// + /// Inject an IActionInvoker into the controller's ActionInvoker property. + /// + /// Limit type. + /// Activator data. + /// Registration style. + /// The registration builder. + /// Service used to resolve the action invoker. + /// A registration builder. + public static IRegistrationBuilder + InjectActionInvoker( + this IRegistrationBuilder registrationBuilder, + Service actionInvokerService) + { + if (registrationBuilder == null) throw new ArgumentNullException("registrationBuilder"); + if (actionInvokerService == null) throw new ArgumentNullException("actionInvokerService"); + + return registrationBuilder.OnActivating(e => + { + var controller = e.Instance as Controller; + if (controller != null) + controller.ActionInvoker = (IActionInvoker)e.Context.ResolveService(actionInvokerService); + }); + } + + /// + /// Registers the . + /// + /// The container builder. + public static void RegisterModelBinderProvider(this ContainerBuilder builder) + { + if (builder == null) throw new ArgumentNullException("builder"); + + builder.RegisterType() + .As() + .SingleInstance(); + } + + /// + /// Sets a provided registration to act as an + /// for the specified list of types. + /// + /// + /// The registration for the type or object instance that will act as + /// the model binder. + /// + /// + /// The list of model for which the + /// should be a model binder. + /// + /// + /// Registration limit type. + /// + /// + /// Activator data type. + /// + /// + /// Registration style. + /// + /// + /// An Autofac registration that can be modified as needed. + /// + /// + /// Thrown if or is . + /// + /// + /// Thrown if is empty or contains all + /// values. + /// + /// + /// + /// The declarative mechanism of registering model binders with Autofac + /// is through use of + /// and the . + /// This method is an imperative alternative. + /// + /// + /// The two mechanisms are mutually exclusive. If you register a model + /// binder using + /// and register the same model binder with this method, the results + /// are not automatically merged together - standard dependency + /// registration/resolution rules will be used to manage the conflict. + /// + /// + /// Any values provided in + /// will be removed prior to registration. + /// + /// + public static IRegistrationBuilder AsModelBinderForTypes(this IRegistrationBuilder registration, params Type[] types) + where TActivatorData : IConcreteActivatorData + where TRegistrationStyle : SingleRegistrationStyle + { + if (registration == null) + { + throw new ArgumentNullException("registration"); + } + if (types == null) + { + throw new ArgumentNullException("types"); + } + var typeList = types.Where(type => type != null).ToList(); + if (typeList.Count == 0) + { + throw new ArgumentException(RegistrationExtensionsResources.InvalidModelBinderType, "types"); + } + + return registration.As().WithMetadata(AutofacModelBinderProvider.MetadataKey, typeList); + } + + /// + /// Register types that implement in the provided assemblies + /// and have a . + /// + /// The container builder. + /// Assemblies to scan for model binders. + /// A registration builder. + /// + /// Thrown if or is . + /// + /// + /// + /// The declarative mechanism of registering model binders with Autofac + /// is through use of this method and the + /// . + /// If you would like more imperative control over registration for your + /// model binders, see the + /// method. + /// + /// + /// The two mechanisms are mutually exclusive. If you register a model + /// binder using + /// and register the same model binder with this method, the results + /// are not automatically merged together - standard dependency + /// registration/resolution rules will be used to manage the conflict. + /// + /// + /// This method only registers types that implement + /// and are marked with the . + /// The model binder must have the attribute because the + /// uses + /// the associated metadata - from the attribute(s) - to resolve the + /// binder based on model type. If there aren't any attributes, there + /// won't be any metadata, so the model binder will be technically + /// registered but will never actually be resolved. + /// + /// + /// If your model is not marked with the attribute, or if you don't want + /// to use attributes, use the + /// + /// extension instead. + /// + /// + public static IRegistrationBuilder + RegisterModelBinders(this ContainerBuilder builder, params Assembly[] modelBinderAssemblies) + { + if (builder == null) throw new ArgumentNullException("builder"); + if (modelBinderAssemblies == null) throw new ArgumentNullException("modelBinderAssemblies"); + + return builder.RegisterAssemblyTypes(modelBinderAssemblies) + .Where(type => typeof(IModelBinder).IsAssignableFrom(type) && type.GetCustomAttributes(typeof(ModelBinderTypeAttribute), true).Length > 0) + .As() + .InstancePerHttpRequest() + .WithMetadata(AutofacModelBinderProvider.MetadataKey, type => + (from ModelBinderTypeAttribute attribute in type.GetCustomAttributes(typeof(ModelBinderTypeAttribute), true) + from targetType in attribute.TargetTypes + select targetType).ToList()); + } + + /// + /// Registers the . + /// + /// The container builder. + public static void RegisterFilterProvider(this ContainerBuilder builder) + { + if (builder == null) throw new ArgumentNullException("builder"); + + foreach (var provider in FilterProviders.Providers.OfType().ToArray()) + FilterProviders.Providers.Remove(provider); + + builder.RegisterType() + .As() + .SingleInstance(); + } + + /// + /// Cache instances in the web session. This implies external ownership (disposal is not + /// available.) All dependencies must also have external ownership. + /// + /// + /// It is strongly recommended that components cached per-session do not take dependencies on + /// other services. + /// + /// Registration limit type. + /// Registration style. + /// Activator data type. + /// The registration to configure. + /// A registration builder allowing further configuration of the component. + [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "It is the responsibility of the registry to dispose of registrations.")] + public static IRegistrationBuilder + CacheInSession( + this IRegistrationBuilder registration) + where TActivatorData : IConcreteActivatorData + where TSingleRegistrationStyle : SingleRegistrationStyle + { + if (registration == null) throw new ArgumentNullException("registration"); + + var services = registration.RegistrationData.Services.ToArray(); + registration.RegistrationData.ClearServices(); + + return registration + .ExternallyOwned() + .OnRegistered(e => e.ComponentRegistry.Register(RegistrationBuilder + .ForDelegate((c, p) => + { + var session = HttpContext.Current.Session; + object result; + lock (session.SyncRoot) + { + result = session[e.ComponentRegistration.Id.ToString()]; + if (result == null) + { + result = c.ResolveComponent(e.ComponentRegistration, p); + session[e.ComponentRegistration.Id.ToString()] = result; + } + } + return result; + }) + .As(services) + .InstancePerLifetimeScope() + .ExternallyOwned() + .CreateRegistration())); + } + + /// + /// Sets the provided registration to act as an for the specified controller action. + /// + /// The type of the controller. + /// The registration. + /// The action selector. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsActionFilterFor(this IRegistrationBuilder registration, + Expression> actionSelector, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ActionFilterMetadataKey, actionSelector, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller. + /// + /// The type of the controller. + /// The registration. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsActionFilterFor(this IRegistrationBuilder registration, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ActionFilterMetadataKey, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller action. + /// + /// The type of the controller. + /// The registration. + /// The action selector. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsAuthorizationFilterFor(this IRegistrationBuilder registration, + Expression> actionSelector, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.AuthorizationFilterMetadataKey, actionSelector, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller. + /// + /// The type of the controller. + /// The registration. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsAuthorizationFilterFor(this IRegistrationBuilder registration, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.AuthorizationFilterMetadataKey, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller action. + /// + /// The type of the controller. + /// The registration. + /// The action selector. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsExceptionFilterFor(this IRegistrationBuilder registration, + Expression> actionSelector, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ExceptionFilterMetadataKey, actionSelector, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller. + /// + /// The type of the controller. + /// The registration. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsExceptionFilterFor(this IRegistrationBuilder registration, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ExceptionFilterMetadataKey, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller action. + /// + /// The type of the controller. + /// The registration. + /// The action selector. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsResultFilterFor(this IRegistrationBuilder registration, + Expression> actionSelector, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ResultFilterMetadataKey, actionSelector, order); + } + + /// + /// Sets the provided registration to act as an for the specified controller. + /// + /// The type of the controller. + /// The registration. + /// The order in which the filter is applied. + /// A registration builder allowing further configuration of the component. + public static IRegistrationBuilder + AsResultFilterFor(this IRegistrationBuilder registration, int order = Filter.DefaultOrder) + where TController : IController + { + return AsFilterFor(registration, AutofacFilterProvider.ResultFilterMetadataKey, order); + } + + static IRegistrationBuilder + AsFilterFor(IRegistrationBuilder registration, string metadataKey, Expression> actionSelector, int order) + where TController : IController + { + if (registration == null) throw new ArgumentNullException("registration"); + if (actionSelector == null) throw new ArgumentNullException("actionSelector"); + + var limitType = registration.ActivatorData.Activator.LimitType; + + if (!limitType.IsAssignableTo()) + { + var message = string.Format(CultureInfo.CurrentCulture, RegistrationExtensionsResources.MustBeAssignableToFilterType, + limitType.FullName, typeof(TFilter).FullName); + throw new ArgumentException(message, "registration"); + } + + var metadata = new FilterMetadata + { + ControllerType = typeof(TController), + FilterScope = FilterScope.Action, + MethodInfo = GetMethodInfo(actionSelector), + Order = order + }; + + return registration.As().WithMetadata(metadataKey, metadata); + } + + static IRegistrationBuilder + AsFilterFor(IRegistrationBuilder registration, string metadataKey, int order) + where TController : IController + { + if (registration == null) throw new ArgumentNullException("registration"); + + var limitType = registration.ActivatorData.Activator.LimitType; + + if (!limitType.IsAssignableTo()) + { + var message = string.Format(CultureInfo.CurrentCulture, RegistrationExtensionsResources.MustBeAssignableToFilterType, + limitType.FullName, typeof(TFilter).FullName); + throw new ArgumentException(message, "registration"); + } + + var metadata = new FilterMetadata + { + ControllerType = typeof(TController), + FilterScope = FilterScope.Controller, + MethodInfo = null, + Order = order + }; + + return registration.As().WithMetadata(metadataKey, metadata); + } + + static MethodInfo GetMethodInfo(LambdaExpression expression) + { + var outermostExpression = expression.Body as MethodCallExpression; + + if (outermostExpression == null) + throw new ArgumentException(RegistrationExtensionsResources.InvalidActionExpress); + + return outermostExpression.Method; + } + } +} diff --git a/Autofac.Integration.Mvc/RegistrationExtensionsResources.Designer.cs b/Autofac.Integration.Mvc/RegistrationExtensionsResources.Designer.cs new file mode 100644 index 000000000..175afcea9 --- /dev/null +++ b/Autofac.Integration.Mvc/RegistrationExtensionsResources.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18010 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Autofac.Integration.Mvc { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // 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", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class RegistrationExtensionsResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal RegistrationExtensionsResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Autofac.Integration.Mvc.RegistrationExtensionsResources", typeof(RegistrationExtensionsResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The action method Expression is invalid. It should consist only of a Method call to a controller action method.. + /// + internal static string InvalidActionExpress { + get { + return ResourceManager.GetString("InvalidActionExpress", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type list may not be empty or contain all null values.. + /// + internal static string InvalidModelBinderType { + get { + return ResourceManager.GetString("InvalidModelBinderType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The type '{0}' must be assignable to the filter type '{1}'.. + /// + internal static string MustBeAssignableToFilterType { + get { + return ResourceManager.GetString("MustBeAssignableToFilterType", resourceCulture); + } + } + } +} diff --git a/Autofac.Integration.Mvc/RegistrationExtensionsResources.resx b/Autofac.Integration.Mvc/RegistrationExtensionsResources.resx new file mode 100644 index 000000000..d1be6ef19 --- /dev/null +++ b/Autofac.Integration.Mvc/RegistrationExtensionsResources.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The action method Expression is invalid. It should consist only of a Method call to a controller action method. + + + Type list may not be empty or contain all null values. + + + The type '{0}' must be assignable to the filter type '{1}'. + + \ No newline at end of file diff --git a/Autofac.Integration.Mvc/RequestLifetimeHttpModule.cs b/Autofac.Integration.Mvc/RequestLifetimeHttpModule.cs new file mode 100644 index 000000000..cf9441a92 --- /dev/null +++ b/Autofac.Integration.Mvc/RequestLifetimeHttpModule.cs @@ -0,0 +1,79 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Web; + +namespace Autofac.Integration.Mvc +{ + /// + /// An and implementation + /// that creates a nested lifetime scope for each HTTP request. + /// + internal class RequestLifetimeHttpModule : IHttpModule + { + /// + /// Gets the lifetime scope provider that should be notified when a HTTP request ends. + /// + internal static ILifetimeScopeProvider LifetimeScopeProvider { get; private set; } + + /// + /// Initializes a module and prepares it to handle requests. + /// + /// An that provides access to the + /// methods, properties, and events common to all application objects within an ASP.NET application + /// + /// Thrown if is . + /// + public void Init(HttpApplication context) + { + if (context == null) + { + throw new ArgumentNullException("context"); + } + context.EndRequest += OnEndRequest; + } + + /// + /// Disposes of the resources (other than memory) used by the module that implements . + /// + public void Dispose() + { + } + + public static void SetLifetimeScopeProvider(ILifetimeScopeProvider lifetimeScopeProvider) + { + if (lifetimeScopeProvider == null) throw new ArgumentNullException("lifetimeScopeProvider"); + + LifetimeScopeProvider = lifetimeScopeProvider; + } + + static void OnEndRequest(object sender, EventArgs e) + { + if (LifetimeScopeProvider != null) + LifetimeScopeProvider.EndLifetimeScope(); + } + } +} \ No newline at end of file diff --git a/Autofac.Integration.Mvc/RequestLifetimeScopeProvider.cs b/Autofac.Integration.Mvc/RequestLifetimeScopeProvider.cs new file mode 100644 index 000000000..55eee6638 --- /dev/null +++ b/Autofac.Integration.Mvc/RequestLifetimeScopeProvider.cs @@ -0,0 +1,122 @@ +// This software is part of the Autofac IoC container +// Copyright (c) 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Web; + +namespace Autofac.Integration.Mvc +{ + /// + /// Creates and disposes HTTP request based lifetime scopes. + /// + /// + /// The provider is notified when a HTTP request ends by the . + /// + public class RequestLifetimeScopeProvider : ILifetimeScopeProvider + { + readonly ILifetimeScope _container; + + /// + /// Tag used to identify registrations that are scoped to the HTTP request level. + /// + internal static readonly object HttpRequestTag = "AutofacWebRequest"; + + /// + /// Initializes a new instance of the class. + /// + /// The parent container, usually the application container. + public RequestLifetimeScopeProvider(ILifetimeScope container) + { + if (container == null) throw new ArgumentNullException("container"); + _container = container; + RequestLifetimeHttpModule.SetLifetimeScopeProvider(this); + } + + /// + /// Gets the global, application-wide container. + /// + public ILifetimeScope ApplicationContainer + { + get { return _container; } + } + + static ILifetimeScope LifetimeScope + { + get { return (ILifetimeScope)HttpContext.Current.Items[typeof(ILifetimeScope)]; } + set { HttpContext.Current.Items[typeof(ILifetimeScope)] = value; } + } + + /// + /// Gets a nested lifetime scope that services can be resolved from. + /// + /// + /// A configuration action that will execute during lifetime scope creation. + /// + /// A new or existing nested lifetime scope. + public ILifetimeScope GetLifetimeScope(Action configurationAction) + { + if (HttpContext.Current == null) + { + throw new InvalidOperationException(RequestLifetimeScopeProviderResources.HttpContextNotAvailable); + } + + if (LifetimeScope == null) + { + if ((LifetimeScope = GetLifetimeScopeCore(configurationAction)) == null) + throw new InvalidOperationException( + string.Format(CultureInfo.CurrentCulture, RequestLifetimeScopeProviderResources.NullLifetimeScopeReturned, GetType().FullName)); + } + return LifetimeScope; + } + + /// + /// Ends the current HTTP request lifetime scope. + /// + public void EndLifetimeScope() + { + var lifetimeScope = LifetimeScope; + if (lifetimeScope != null) + lifetimeScope.Dispose(); + } + + /// + /// Gets a lifetime scope for the current HTTP request. This method can be overridden + /// to alter the way that the life time scope is constructed. + /// + /// + /// A configuration action that will execute during lifetime scope creation. + /// + /// A new lifetime scope for the current HTTP request. + [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")] + protected virtual ILifetimeScope GetLifetimeScopeCore(Action configurationAction) + { + return (configurationAction == null) + ? ApplicationContainer.BeginLifetimeScope(HttpRequestTag) + : ApplicationContainer.BeginLifetimeScope(HttpRequestTag, configurationAction); + } + } +} diff --git a/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.Designer.cs b/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.Designer.cs new file mode 100644 index 000000000..eb79ea366 --- /dev/null +++ b/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.Designer.cs @@ -0,0 +1,81 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Autofac.Integration.Mvc { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // 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", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class RequestLifetimeScopeProviderResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal RequestLifetimeScopeProviderResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Autofac.Integration.Mvc.RequestLifetimeScopeProviderResources", typeof(RequestLifetimeScopeProviderResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The request lifetime scope cannot be created because the HttpContext is not available.. + /// + internal static string HttpContextNotAvailable { + get { + return ResourceManager.GetString("HttpContextNotAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The 'GetLifetimeScopeCore' method implementation on '{0}' returned a null ILifetimeScope instance. When overridden this method must return a valid ILifetimeScope instance for the current HTTP request.. + /// + internal static string NullLifetimeScopeReturned { + get { + return ResourceManager.GetString("NullLifetimeScopeReturned", resourceCulture); + } + } + } +} diff --git a/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.resx b/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.resx new file mode 100644 index 000000000..22507abed --- /dev/null +++ b/Autofac.Integration.Mvc/RequestLifetimeScopeProviderResources.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The request lifetime scope cannot be created because the HttpContext is not available. + + + The 'GetLifetimeScopeCore' method implementation on '{0}' returned a null ILifetimeScope instance. When overridden this method must return a valid ILifetimeScope instance for the current HTTP request. + + \ No newline at end of file diff --git a/Autofac.Integration.Mvc/ViewRegistrationSource.cs b/Autofac.Integration.Mvc/ViewRegistrationSource.cs new file mode 100644 index 000000000..60f167df5 --- /dev/null +++ b/Autofac.Integration.Mvc/ViewRegistrationSource.cs @@ -0,0 +1,78 @@ +// This software is part of the Autofac IoC container +// Copyright © 2011 Autofac Contributors +// http://autofac.org +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Web.Mvc; +using Autofac.Builder; +using Autofac.Core; + +namespace Autofac.Integration.Mvc +{ + /// + /// A registration source for building view registrations. + /// + /// + /// Supports view registrations for , , + /// and derived types. + /// + public class ViewRegistrationSource : IRegistrationSource + { + /// + /// Retrieve registrations for an unregistered service, to be used + /// by the container. + /// + /// The service that was requested. + /// A function that will return existing registrations for a service. + /// Registrations providing the service. + public IEnumerable RegistrationsFor(Service service, Func> registrationAccessor) + { + var typedService = service as IServiceWithType; + + if (typedService != null && IsSupportedView(typedService.ServiceType)) + yield return RegistrationBuilder.ForType(typedService.ServiceType) + .PropertiesAutowired() + .InstancePerDependency() + .CreateRegistration(); + } + + /// + /// Gets whether the registrations provided by this source are 1:1 adapters on top + /// of other components (I.e. like Meta, Func or Owned.) + /// + public bool IsAdapterForIndividualComponents + { + get { return false; } + } + + static bool IsSupportedView(Type serviceType) + { + return serviceType.IsAssignableTo() + || serviceType.IsAssignableTo() + || serviceType.IsAssignableTo() + || serviceType.IsAssignableTo(); + } + } +} diff --git a/Autofac.Integration.Mvc/packages.config b/Autofac.Integration.Mvc/packages.config new file mode 100644 index 000000000..acd79060a --- /dev/null +++ b/Autofac.Integration.Mvc/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Libraries/CTT/ctt.exe b/Libraries/CTT/ctt.exe new file mode 100644 index 0000000000000000000000000000000000000000..3652dfc7b88c59f5dbb084f49b11edcdbc02bd6e GIT binary patch literal 561152 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

~vuwVQ^Am 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

ijxR3x8QHzdFB;(;}oh%XhOD{VL_1 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 literal 0 HcmV?d00001 diff --git a/Libraries/CTT/ctt.exe.config b/Libraries/CTT/ctt.exe.config new file mode 100644 index 000000000..06809064e --- /dev/null +++ b/Libraries/CTT/ctt.exe.config @@ -0,0 +1,53 @@ + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+