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
- GridPatternIdentifiers.cs
- PageAsyncTaskManager.cs
- XmlExceptionHelper.cs
- ConfigurationElementCollection.cs
- QuaternionConverter.cs
- PropertyFilterAttribute.cs
- ListBoxItemAutomationPeer.cs
- ExpressionTable.cs
- WebReference.cs
- FixUp.cs
- CustomWebEventKey.cs
- BrowserTree.cs
- AnnotationDocumentPaginator.cs
- COM2FontConverter.cs
- UxThemeWrapper.cs
- DependencyPropertyKey.cs
- GlyphRunDrawing.cs
- PixelShader.cs
- StringWriter.cs
- DoubleLinkListEnumerator.cs
- CollectionDataContract.cs
- VirtualPathProvider.cs
- CodeGeneratorOptions.cs
- CustomError.cs
- CannotUnloadAppDomainException.cs
- RenderingBiasValidation.cs
- EmptyImpersonationContext.cs
- InitializationEventAttribute.cs
- EntityContainerEmitter.cs
- PrintPageEvent.cs
- SortedSet.cs
- DataSourceGeneratorException.cs
- DrawingCollection.cs
- BlockCollection.cs
- storepermission.cs
- XmlResolver.cs
- FixedSOMTableCell.cs
- AnnotationDocumentPaginator.cs
- Environment.cs
- CompilerTypeWithParams.cs
- HtmlTableRowCollection.cs
- CheckBoxPopupAdapter.cs
- RequestQueue.cs
- JsonWriterDelegator.cs
- Calendar.cs
- ActivityWithResult.cs
- TailCallAnalyzer.cs
- PageStatePersister.cs
- WebResourceAttribute.cs
- XamlClipboardData.cs
- BmpBitmapEncoder.cs
- Proxy.cs
- SchemaElementLookUpTable.cs
- ContentElement.cs
- DictionaryBase.cs
- DataGridViewControlCollection.cs
- ViewGenResults.cs
- PassportAuthenticationModule.cs
- IItemProperties.cs
- MessageAction.cs
- UpdateException.cs
- CheckBoxRenderer.cs
- diagnosticsswitches.cs
- CharAnimationBase.cs
- WSUtilitySpecificationVersion.cs
- StreamedWorkflowDefinitionContext.cs
- _HelperAsyncResults.cs
- IdentitySection.cs
- SqlUserDefinedAggregateAttribute.cs
- XamlInt32CollectionSerializer.cs
- XmlHierarchicalEnumerable.cs
- HttpProfileGroupBase.cs
- Identifier.cs
- SystemWebCachingSectionGroup.cs
- XmlSchemaDocumentation.cs
- AsmxEndpointPickerExtension.cs
- AutoCompleteStringCollection.cs
- CodeStatementCollection.cs
- EntityWithChangeTrackerStrategy.cs
- WSTrustFeb2005.cs
- QueryStringHandler.cs
- VerificationAttribute.cs
- FillRuleValidation.cs
- ReflectionUtil.cs
- HopperCache.cs
- InstanceOwner.cs
- ViewValidator.cs
- FacetValueContainer.cs
- XsltLoader.cs
- COM2IPerPropertyBrowsingHandler.cs
- Models.cs
- RuleRefElement.cs
- SafeEventLogReadHandle.cs
- tibetanshape.cs
- MemoryMappedViewStream.cs
- ObjectParameterCollection.cs
- SmtpLoginAuthenticationModule.cs
- CompatibleIComparer.cs
- FileDialogCustomPlacesCollection.cs
- RenderDataDrawingContext.cs