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
- PenCursorManager.cs
- OleDbError.cs
- ChannelOptions.cs
- QuinticEase.cs
- Matrix.cs
- SqlConnectionString.cs
- DebuggerAttributes.cs
- PageBreakRecord.cs
- ImageButton.cs
- TaiwanLunisolarCalendar.cs
- ProgressBarBrushConverter.cs
- SmiRecordBuffer.cs
- BitmapImage.cs
- NCryptNative.cs
- TypeExtensions.cs
- PagesSection.cs
- CompilerTypeWithParams.cs
- EntityDataSourceConfigureObjectContext.cs
- XmlReaderDelegator.cs
- BackStopAuthenticationModule.cs
- TdsParserStateObject.cs
- PropagatorResult.cs
- HScrollProperties.cs
- TextTreeFixupNode.cs
- PointUtil.cs
- SoapBinding.cs
- XPathDocumentIterator.cs
- XmlKeywords.cs
- _FixedSizeReader.cs
- CodeMemberProperty.cs
- AttachedAnnotationChangedEventArgs.cs
- HttpCookiesSection.cs
- CodeComment.cs
- Encoding.cs
- DbMetaDataFactory.cs
- AutomationPatternInfo.cs
- AttributeCollection.cs
- AppLevelCompilationSectionCache.cs
- CachedBitmap.cs
- ComAdminInterfaces.cs
- TableAdapterManagerHelper.cs
- Journal.cs
- PackageFilter.cs
- BrowserDefinition.cs
- StdRegProviderWrapper.cs
- DataRecordInternal.cs
- GrammarBuilderPhrase.cs
- ContentElementCollection.cs
- ToolStripSplitStackLayout.cs
- Transform3D.cs
- FieldToken.cs
- DataGridHeaderBorder.cs
- SerializerProvider.cs
- httpapplicationstate.cs
- ActivityBindForm.cs
- Parameter.cs
- PassportAuthenticationEventArgs.cs
- CookieHandler.cs
- HtmlGenericControl.cs
- NativeMethods.cs
- Graph.cs
- PropertyNames.cs
- SectionXmlInfo.cs
- Parser.cs
- ListViewContainer.cs
- BitArray.cs
- TextHintingModeValidation.cs
- RelationshipEndCollection.cs
- VisualTreeFlattener.cs
- NumberFunctions.cs
- SqlBooleanMismatchVisitor.cs
- MultiAsyncResult.cs
- MultiTrigger.cs
- XmlSchemaComplexContentRestriction.cs
- TypedLocationWrapper.cs
- SQLCharsStorage.cs
- smtpconnection.cs
- XmlComplianceUtil.cs
- HttpContext.cs
- ToolStripDropDownClosedEventArgs.cs
- TextFindEngine.cs
- ToolStripProgressBar.cs
- ChildrenQuery.cs
- cookiecontainer.cs
- MessageHeaders.cs
- RepeatBehavior.cs
- WrappedIUnknown.cs
- SafeNativeMethods.cs
- XmlDataSourceNodeDescriptor.cs
- KeyboardNavigation.cs
- PlainXmlDeserializer.cs
- Trace.cs
- RoutedCommand.cs
- HtmlTernaryTree.cs
- MarshalByRefObject.cs
- DataFormats.cs
- DefaultAsyncDataDispatcher.cs
- OrderedEnumerableRowCollection.cs
- GridViewSelectEventArgs.cs
- MinimizableAttributeTypeConverter.cs