Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- AttachedPropertiesService.cs
- RowParagraph.cs
- CompiledELinqQueryState.cs
- RelationshipConverter.cs
- unitconverter.cs
- NamespaceCollection.cs
- AuthenticationSection.cs
- DataSourceSelectArguments.cs
- DataFormats.cs
- DrawingDrawingContext.cs
- QEncodedStream.cs
- TogglePattern.cs
- Stacktrace.cs
- IndependentAnimationStorage.cs
- _Rfc2616CacheValidators.cs
- DocumentCollection.cs
- ControlDesigner.cs
- BrowserDefinition.cs
- DependencyProperty.cs
- CodeExpressionStatement.cs
- JournalNavigationScope.cs
- FormsAuthenticationCredentials.cs
- OciHandle.cs
- BrowserCapabilitiesFactoryBase.cs
- ExpandSegmentCollection.cs
- WorkflowItemPresenter.cs
- BuildManagerHost.cs
- TCPClient.cs
- Rfc2898DeriveBytes.cs
- WebPartCloseVerb.cs
- SoapSchemaImporter.cs
- EventLogSession.cs
- SerialPinChanges.cs
- MailSettingsSection.cs
- CompositeTypefaceMetrics.cs
- DuplicateWaitObjectException.cs
- XmlChoiceIdentifierAttribute.cs
- Wizard.cs
- DataReceivedEventArgs.cs
- ClientSession.cs
- SafeLocalMemHandle.cs
- MailAddress.cs
- MenuStrip.cs
- DocumentViewerBase.cs
- PreProcessInputEventArgs.cs
- IgnoreFlushAndCloseStream.cs
- EmptyStringExpandableObjectConverter.cs
- XmlWriterSettings.cs
- ImageAutomationPeer.cs
- WebBrowserContainer.cs
- RichTextBoxAutomationPeer.cs
- ProviderConnectionPointCollection.cs
- SessionState.cs
- PixelFormats.cs
- TcpClientChannel.cs
- ValidationManager.cs
- SmiConnection.cs
- AnnotationResourceCollection.cs
- DocumentScope.cs
- Semaphore.cs
- WindowsListBox.cs
- ScriptingJsonSerializationSection.cs
- OperandQuery.cs
- ContextProperty.cs
- WebPartCloseVerb.cs
- WsatServiceCertificate.cs
- TreeViewImageKeyConverter.cs
- SQLDateTime.cs
- PriorityItem.cs
- Annotation.cs
- EnumValAlphaComparer.cs
- RangeEnumerable.cs
- IsolatedStorageFileStream.cs
- OutputWindow.cs
- DiffuseMaterial.cs
- PerfCounterSection.cs
- AssemblyHash.cs
- LockCookie.cs
- OdbcPermission.cs
- SizeConverter.cs
- CanExecuteRoutedEventArgs.cs
- PathParser.cs
- XmlAttributeProperties.cs
- RelationshipConverter.cs
- GeneralTransform3DTo2D.cs
- ToolStripControlHost.cs
- SR.Designer.cs
- Win32Exception.cs
- XPathQueryGenerator.cs
- XmlTextReader.cs
- Button.cs
- ObjectIDGenerator.cs
- ServiceCredentialsElement.cs
- UnmanagedBitmapWrapper.cs
- BitmapEffectvisualstate.cs
- InvalidPrinterException.cs
- ContentIterators.cs
- WebPartConnectionsEventArgs.cs
- mactripleDES.cs
- TemplateField.cs