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
- PassportAuthentication.cs
- SendMessageRecord.cs
- DictionaryEntry.cs
- HttpCachePolicy.cs
- TextDecoration.cs
- TextLine.cs
- Int32Rect.cs
- ResourceContainer.cs
- ExpanderAutomationPeer.cs
- SqlGatherProducedAliases.cs
- Line.cs
- Executor.cs
- CompositeDataBoundControl.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- XmlSchemaException.cs
- DodSequenceMerge.cs
- ParenthesizePropertyNameAttribute.cs
- Context.cs
- BaseProcessProtocolHandler.cs
- Util.cs
- WindowPatternIdentifiers.cs
- SecurityTokenResolver.cs
- WebEncodingValidator.cs
- ExpressionVisitorHelpers.cs
- WebPartPersonalization.cs
- QilLiteral.cs
- GcHandle.cs
- Splitter.cs
- _FtpControlStream.cs
- HttpModulesSection.cs
- DataColumnChangeEvent.cs
- GeneralTransform2DTo3D.cs
- AppDomainFactory.cs
- CodeParameterDeclarationExpression.cs
- PersonalizationAdministration.cs
- PointCollection.cs
- LogFlushAsyncResult.cs
- ToolStripDropDownButton.cs
- ListControlStringCollectionEditor.cs
- ListDataHelper.cs
- IconHelper.cs
- ParsedAttributeCollection.cs
- DesignConnectionCollection.cs
- XmlSchemaObjectTable.cs
- AttributeAction.cs
- IndentedWriter.cs
- CannotUnloadAppDomainException.cs
- Error.cs
- DataControlButton.cs
- CancellationHandler.cs
- ArraySet.cs
- ChineseLunisolarCalendar.cs
- RadioButtonRenderer.cs
- InkPresenterAutomationPeer.cs
- DesignTimeType.cs
- XhtmlStyleClass.cs
- DurableInstanceManager.cs
- smtppermission.cs
- FormsAuthentication.cs
- SynthesizerStateChangedEventArgs.cs
- PathNode.cs
- WebEventTraceProvider.cs
- _CommandStream.cs
- SelectionPatternIdentifiers.cs
- RepeaterItem.cs
- CollectionType.cs
- filewebrequest.cs
- ReaderContextStackData.cs
- Switch.cs
- CheckBox.cs
- OneToOneMappingSerializer.cs
- WindowsFormsSynchronizationContext.cs
- Themes.cs
- HttpPostLocalhostServerProtocol.cs
- ListControlDesigner.cs
- DispatchChannelSink.cs
- SoapEnumAttribute.cs
- ConsoleCancelEventArgs.cs
- TextAdaptor.cs
- PopupEventArgs.cs
- BitmapEffectGroup.cs
- IntranetCredentialPolicy.cs
- XmlReaderSettings.cs
- Vector3DCollectionConverter.cs
- UIElementAutomationPeer.cs
- PassportIdentity.cs
- DecoderExceptionFallback.cs
- SafeRightsManagementEnvironmentHandle.cs
- HttpListenerRequestTraceRecord.cs
- CacheAxisQuery.cs
- WebControlsSection.cs
- DataGridViewSelectedCellCollection.cs
- CompilationLock.cs
- SmtpDigestAuthenticationModule.cs
- StrongNameMembershipCondition.cs
- RichTextBoxConstants.cs
- ImageFormat.cs
- StickyNoteAnnotations.cs
- BinaryUtilClasses.cs
- XmlSchemaSimpleContentExtension.cs