When analyzing the source code of Orchard.cms, I found an interesting code when the brackets in C # were not used to define any internal object. This seems to have been done for some use of context. Could you clarify what the purpose of using parentheses like this?
Here is a sample code:
builder.RegisterType<DefaultOrchardHost>().As<IOrchardHost>().As<IEventHandler>().SingleInstance(); { builder.RegisterType<ShellSettingsManager>().As<IShellSettingsManager>().SingleInstance(); builder.RegisterType<ShellContextFactory>().As<IShellContextFactory>().SingleInstance(); { builder.RegisterType<ShellDescriptorCache>().As<IShellDescriptorCache>().SingleInstance(); builder.RegisterType<CompositionStrategy>().As<ICompositionStrategy>().SingleInstance(); { builder.RegisterType<ShellContainerRegistrations>().As<IShellContainerRegistrations>().SingleInstance(); builder.RegisterType<ExtensionLoaderCoordinator>().As<IExtensionLoaderCoordinator>().SingleInstance(); builder.RegisterType<ExtensionMonitoringCoordinator>().As<IExtensionMonitoringCoordinator>().SingleInstance(); builder.RegisterType<ExtensionManager>().As<IExtensionManager>().SingleInstance(); { builder.RegisterType<ExtensionHarvester>().As<IExtensionHarvester>().SingleInstance(); builder.RegisterType<ModuleFolders>().As<IExtensionFolders>().SingleInstance() .WithParameter(new NamedParameter("paths", new[] { "~/Modules" })); builder.RegisterType<CoreModuleFolders>().As<IExtensionFolders>().SingleInstance() .WithParameter(new NamedParameter("paths", new[] { "~/Core" })); builder.RegisterType<ThemeFolders>().As<IExtensionFolders>().SingleInstance() .WithParameter(new NamedParameter("paths", new[] { "~/Themes" })); builder.RegisterType<CoreExtensionLoader>().As<IExtensionLoader>().SingleInstance(); builder.RegisterType<ReferencedExtensionLoader>().As<IExtensionLoader>().SingleInstance(); builder.RegisterType<PrecompiledExtensionLoader>().As<IExtensionLoader>().SingleInstance(); builder.RegisterType<DynamicExtensionLoader>().As<IExtensionLoader>().SingleInstance(); builder.RegisterType<RawThemeExtensionLoader>().As<IExtensionLoader>().SingleInstance(); } } builder.RegisterType<ShellContainerFactory>().As<IShellContainerFactory>().SingleInstance(); } builder.RegisterType<DefaultProcessingEngine>().As<IProcessingEngine>().SingleInstance(); }
source share