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
- ToolStripProgressBar.cs
- XmlIlTypeHelper.cs
- milrender.cs
- CodeSnippetCompileUnit.cs
- XmlnsCompatibleWithAttribute.cs
- ImageAutomationPeer.cs
- Memoizer.cs
- PerformanceCounterCategory.cs
- latinshape.cs
- RequestQueryParser.cs
- ErrorCodes.cs
- PathFigureCollection.cs
- XPathNodeList.cs
- DesignBindingEditor.cs
- SymbolType.cs
- Page.cs
- AppDomainProtocolHandler.cs
- BitmapCache.cs
- XamlVector3DCollectionSerializer.cs
- ParamArrayAttribute.cs
- DynamicILGenerator.cs
- SettingsPropertyWrongTypeException.cs
- TrackingStringDictionary.cs
- ByteStack.cs
- WebScriptServiceHost.cs
- EdmItemError.cs
- XmlDocument.cs
- Brushes.cs
- ArrayConverter.cs
- ListItemCollection.cs
- MemberHolder.cs
- BatchServiceHost.cs
- SrgsItemList.cs
- CompModSwitches.cs
- QuaternionAnimation.cs
- ColumnHeader.cs
- Assembly.cs
- HttpPostProtocolImporter.cs
- IPGlobalProperties.cs
- HtmlHistory.cs
- OperationContext.cs
- HttpValueCollection.cs
- AlphabeticalEnumConverter.cs
- DataControlFieldCell.cs
- Matrix.cs
- SimpleHandlerFactory.cs
- FieldNameLookup.cs
- UnmanagedMemoryStream.cs
- HtmlControlPersistable.cs
- StaticExtension.cs
- DynamicDocumentPaginator.cs
- NameTable.cs
- InputScope.cs
- ReflectionTypeLoadException.cs
- WindowsIdentity.cs
- TokenCreationParameter.cs
- OleDragDropHandler.cs
- QueryNode.cs
- ImageAnimator.cs
- BCLDebug.cs
- BezierSegment.cs
- XmlNodeList.cs
- LinqDataSourceUpdateEventArgs.cs
- RewritingSimplifier.cs
- ListControl.cs
- SafeHandle.cs
- Marshal.cs
- Win32MouseDevice.cs
- XmlSerializerAssemblyAttribute.cs
- GroupBoxRenderer.cs
- entitydatasourceentitysetnameconverter.cs
- TreeNodeCollection.cs
- Facet.cs
- RSAOAEPKeyExchangeFormatter.cs
- CookieParameter.cs
- TextTreeFixupNode.cs
- RadioButton.cs
- FilteredReadOnlyMetadataCollection.cs
- InstanceStoreQueryResult.cs
- KnownTypesProvider.cs
- WhitespaceRule.cs
- MarkupExtensionParser.cs
- ComplexPropertyEntry.cs
- OdbcCommandBuilder.cs
- MsmqIntegrationBinding.cs
- MenuItemStyle.cs
- DCSafeHandle.cs
- Enum.cs
- LayoutExceptionEventArgs.cs
- GenerateTemporaryTargetAssembly.cs
- SettingsPropertyValue.cs
- Transform3D.cs
- Glyph.cs
- Brush.cs
- InvokeMemberBinder.cs
- EventLogger.cs
- CommonProperties.cs
- XmlSortKey.cs
- PeerInputChannel.cs
- XmlDataSourceView.cs