Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / ServiceBuildProvider.cs / 1305376 / ServiceBuildProvider.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.CodeDom; using System.CodeDom.Compiler; using System.Collections; using System.IO; using System.Reflection; using System.Runtime; using System.Security; using System.Web.Compilation; [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context." + "Also needs to elevate in order to inherit from BuildProvider and call methods on the base class.")] #pragma warning disable 618 // have not moved to the v4 security model yet [SecurityCritical(SecurityCriticalScope.Everything)] #pragma warning restore 618 [BuildProviderAppliesTo(BuildProviderAppliesTo.Web)] [ServiceActivationBuildProvider] //class needs to be public for TypeForwarding from System.ServiceModel public sealed class ServiceBuildProvider : BuildProvider { ServiceParser parser; public override CompilerType CodeCompilerType { get { return GetCodeCompilerType(); } } CompilerType GetCodeCompilerType() { EnsureParsed(); return parser.CompilerType; } protected override CodeCompileUnit GetCodeCompileUnit(out IDictionary linePragmasTable) { CodeSnippetCompileUnit ccu = parser.GetCodeModel() as CodeSnippetCompileUnit; linePragmasTable = parser.GetLinePragmasTable(); return ccu; } void EnsureParsed() { if (parser == null) { parser = new ServiceParser(VirtualPath, this); parser.Parse(ReferencedAssemblies); } } public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } public override void GenerateCode(AssemblyBuilder assemblyBuilder) { GenerateCodeCore(assemblyBuilder); } void GenerateCodeCore(AssemblyBuilder assemblyBuilder) { if (assemblyBuilder == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("assemblyBuilder"); } CodeCompileUnit codeCompileUnit = parser.GetCodeModel(); // Bail if we have nothing we need to compile // if (codeCompileUnit == null) return; // Add the code unit and then add all the assemblies // assemblyBuilder.AddCodeCompileUnit(this, codeCompileUnit); if (parser.AssemblyDependencies != null) { foreach (Assembly assembly in parser.AssemblyDependencies) { assemblyBuilder.AddAssemblyReference(assembly); } } } public override string GetCustomString(CompilerResults results) { return GetCustomStringCore(results); } string GetCustomStringCore(CompilerResults results) { return parser.CreateParseString((results == null) ? null : results.CompiledAssembly); } public override System.Collections.ICollection VirtualPathDependencies { get { return parser.SourceDependencies; } } internal CompilerType GetDefaultCompilerTypeForLanguageInternal(string language) { return GetDefaultCompilerTypeForLanguage(language); } internal CompilerType GetDefaultCompilerTypeInternal() { return GetDefaultCompilerType(); } internal TextReader OpenReaderInternal() { return OpenReader(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DecodeHelper.cs
- XmlSchemaImport.cs
- XPathDocumentNavigator.cs
- HttpConfigurationSystem.cs
- XamlRtfConverter.cs
- CfgParser.cs
- IntSecurity.cs
- ByteViewer.cs
- SortExpressionBuilder.cs
- TemplateControlParser.cs
- DataReaderContainer.cs
- UdpAnnouncementEndpoint.cs
- _ConnectOverlappedAsyncResult.cs
- IPipelineRuntime.cs
- NavigationCommands.cs
- DataGridViewHeaderCell.cs
- ReadOnlyNameValueCollection.cs
- ObjectListFieldCollection.cs
- MappingSource.cs
- ImageListStreamer.cs
- KeyInstance.cs
- namescope.cs
- TabControlAutomationPeer.cs
- XsltSettings.cs
- Padding.cs
- SponsorHelper.cs
- NamedObject.cs
- PropertyMappingExceptionEventArgs.cs
- KeyGestureConverter.cs
- GcHandle.cs
- ConfigurationLockCollection.cs
- URLIdentityPermission.cs
- SqlFactory.cs
- InheritedPropertyChangedEventArgs.cs
- HtmlAnchor.cs
- ListViewItemMouseHoverEvent.cs
- DataRowChangeEvent.cs
- ToolBarTray.cs
- NamespaceTable.cs
- HttpCacheVary.cs
- DatagridviewDisplayedBandsData.cs
- ItemsControl.cs
- AutoResetEvent.cs
- ValueQuery.cs
- ParameterToken.cs
- CodeMethodReturnStatement.cs
- SystemFonts.cs
- EpmSyndicationContentSerializer.cs
- UniqueSet.cs
- Substitution.cs
- DataGridViewMethods.cs
- CoreSwitches.cs
- XsdValidatingReader.cs
- DbXmlEnabledProviderManifest.cs
- VarRemapper.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- ClientOptions.cs
- DataSourceCacheDurationConverter.cs
- TypeForwardedToAttribute.cs
- MultipleViewProviderWrapper.cs
- DigestTraceRecordHelper.cs
- Msmq4PoisonHandler.cs
- ToolStripPanelRenderEventArgs.cs
- CodeDelegateCreateExpression.cs
- AnnotationDocumentPaginator.cs
- WebPartDisplayModeEventArgs.cs
- InvalidPrinterException.cs
- BulletChrome.cs
- ResXResourceSet.cs
- DoubleLinkList.cs
- HwndMouseInputProvider.cs
- HGlobalSafeHandle.cs
- LinkedList.cs
- ShapingWorkspace.cs
- MemberMemberBinding.cs
- AspProxy.cs
- OpenFileDialog.cs
- PagesSection.cs
- _NegotiateClient.cs
- EpmCustomContentSerializer.cs
- Form.cs
- EditBehavior.cs
- ImageClickEventArgs.cs
- ValidatingReaderNodeData.cs
- BooleanExpr.cs
- SimpleExpression.cs
- OleDbError.cs
- GridViewHeaderRowPresenter.cs
- XmlWrappingWriter.cs
- SqlClientPermission.cs
- Wrapper.cs
- ClusterSafeNativeMethods.cs
- TreeViewItem.cs
- SortedList.cs
- PageCatalogPart.cs
- OdbcCommand.cs
- ViewGenerator.cs
- DiscoveryDocumentLinksPattern.cs
- PieceNameHelper.cs
- ReservationNotFoundException.cs