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
- MSAANativeProvider.cs
- EntityDataSourceDesignerHelper.cs
- SBCSCodePageEncoding.cs
- SchemaEntity.cs
- ProfilePropertySettings.cs
- WindowPatternIdentifiers.cs
- PrefixHandle.cs
- BitmapEffectState.cs
- ThemeInfoAttribute.cs
- CodeNamespaceImportCollection.cs
- GenericEnumConverter.cs
- Parser.cs
- ShapeTypeface.cs
- SHA512Managed.cs
- SystemWebSectionGroup.cs
- SQLInt16Storage.cs
- LogStore.cs
- DbConnectionFactory.cs
- WebPartConnection.cs
- ChangePassword.cs
- ImportException.cs
- MailMessage.cs
- ComEventsMethod.cs
- StreamReader.cs
- FocusTracker.cs
- RegexGroupCollection.cs
- XXXInfos.cs
- XPathBuilder.cs
- KernelTypeValidation.cs
- IndexOutOfRangeException.cs
- EncryptedData.cs
- XmlEntityReference.cs
- RepeatBehaviorConverter.cs
- SystemPens.cs
- SafeSystemMetrics.cs
- DataSourceProvider.cs
- MediaContext.cs
- Marshal.cs
- TextBlockAutomationPeer.cs
- ProcessingInstructionAction.cs
- RefreshEventArgs.cs
- ParamArrayAttribute.cs
- LayoutTableCell.cs
- EntityDesignerUtils.cs
- SecurityHeaderTokenResolver.cs
- FormsAuthentication.cs
- ClusterUtils.cs
- ObjectItemAttributeAssemblyLoader.cs
- InstalledFontCollection.cs
- HwndPanningFeedback.cs
- TextDecoration.cs
- Code.cs
- EventManager.cs
- ActivityExecutorSurrogate.cs
- Contracts.cs
- CompositeControl.cs
- HttpCacheVaryByContentEncodings.cs
- WebPartEventArgs.cs
- ExtensionFile.cs
- Inline.cs
- CookieParameter.cs
- WebBrowsableAttribute.cs
- BaseProcessor.cs
- XsdDuration.cs
- ParsedAttributeCollection.cs
- Sql8ConformanceChecker.cs
- QueryGeneratorBase.cs
- ObjectParameter.cs
- LongCountAggregationOperator.cs
- ObjectHelper.cs
- HtmlContainerControl.cs
- QilInvokeEarlyBound.cs
- Component.cs
- SingleAnimationBase.cs
- DataGridViewTopRowAccessibleObject.cs
- XmlSiteMapProvider.cs
- CellLabel.cs
- XsdValidatingReader.cs
- WSSecureConversationDec2005.cs
- ValidationErrorCollection.cs
- SoapFault.cs
- BindingCompleteEventArgs.cs
- VariantWrapper.cs
- DesignerTransaction.cs
- OpCellTreeNode.cs
- MessageBodyDescription.cs
- CodeSubDirectoriesCollection.cs
- MarkedHighlightComponent.cs
- SequenceRange.cs
- CrossSiteScriptingValidation.cs
- StatusStrip.cs
- HashMembershipCondition.cs
- LayoutUtils.cs
- FilteredDataSetHelper.cs
- SecurityContext.cs
- RectKeyFrameCollection.cs
- CompositeDataBoundControl.cs
- WSUtilitySpecificationVersion.cs
- PathGeometry.cs
- ButtonChrome.cs