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
- HttpResponseInternalWrapper.cs
- PerformanceCounterPermission.cs
- DisposableCollectionWrapper.cs
- Panel.cs
- XmlSchemaSimpleTypeUnion.cs
- SimpleHandlerFactory.cs
- WebPartZoneCollection.cs
- Control.cs
- PropertyContainer.cs
- CollectionsUtil.cs
- WebPartMenuStyle.cs
- SingleAnimationUsingKeyFrames.cs
- XamlValidatingReader.cs
- ScrollBar.cs
- TagMapCollection.cs
- FixedPageAutomationPeer.cs
- DecoderNLS.cs
- BadImageFormatException.cs
- TemplateControl.cs
- ProfilePropertyMetadata.cs
- MsmqTransportReceiveParameters.cs
- BoundColumn.cs
- webeventbuffer.cs
- LoadWorkflowByKeyAsyncResult.cs
- PriorityBinding.cs
- CreateRefExpr.cs
- FileSystemWatcher.cs
- ColorAnimationBase.cs
- EndpointIdentityExtension.cs
- PerformanceCounterPermissionEntry.cs
- BindMarkupExtensionSerializer.cs
- DataBindingHandlerAttribute.cs
- RotateTransform.cs
- MasterPageCodeDomTreeGenerator.cs
- TraceLog.cs
- EmptyReadOnlyDictionaryInternal.cs
- OracleCommand.cs
- TextEmbeddedObject.cs
- ManagementQuery.cs
- SymbolUsageManager.cs
- Point3DAnimation.cs
- StrokeCollectionDefaultValueFactory.cs
- DiscoveryMessageSequence.cs
- BamlTreeNode.cs
- SqlBooleanizer.cs
- OledbConnectionStringbuilder.cs
- SafeNativeMethods.cs
- SqlAliaser.cs
- BasePropertyDescriptor.cs
- DataRelation.cs
- DynamicResourceExtensionConverter.cs
- VirtualizingPanel.cs
- IgnoreDataMemberAttribute.cs
- HtmlToClrEventProxy.cs
- GenericIdentity.cs
- ContractsBCL.cs
- VisualTreeUtils.cs
- _NegoStream.cs
- PropertyConverter.cs
- SqlMethodCallConverter.cs
- UseLicense.cs
- PropertyInformation.cs
- WindowsScrollBarBits.cs
- OpCodes.cs
- MouseButtonEventArgs.cs
- CompilationUtil.cs
- TreeNodeStyle.cs
- TextBreakpoint.cs
- Form.cs
- XslTransform.cs
- SiteMap.cs
- GeometryDrawing.cs
- ConfigurationPropertyCollection.cs
- ContextStaticAttribute.cs
- BitmapSizeOptions.cs
- SymbolUsageManager.cs
- ReadOnlyHierarchicalDataSourceView.cs
- StrokeIntersection.cs
- SID.cs
- X509SubjectKeyIdentifierClause.cs
- TransactionalPackage.cs
- StylusPointCollection.cs
- Message.cs
- AspNetHostingPermission.cs
- formatstringdialog.cs
- BamlMapTable.cs
- PropertyOverridesDialog.cs
- BasicViewGenerator.cs
- FileRegion.cs
- XmlEncodedRawTextWriter.cs
- tooltip.cs
- CompositionCommandSet.cs
- Internal.cs
- Line.cs
- ComponentRenameEvent.cs
- SourceFilter.cs
- BoundsDrawingContextWalker.cs
- StringSource.cs
- OutputChannel.cs
- ObsoleteAttribute.cs