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
- OleDbRowUpdatingEvent.cs
- SqlServices.cs
- IsolatedStorageFile.cs
- TriggerAction.cs
- ElementMarkupObject.cs
- XmlChildEnumerator.cs
- SQLBinaryStorage.cs
- EventMappingSettingsCollection.cs
- ChineseLunisolarCalendar.cs
- PolyBezierSegment.cs
- NumericUpDownAcceleration.cs
- HScrollBar.cs
- CaseStatement.cs
- DynamicResourceExtension.cs
- ContainerAction.cs
- SessionStateModule.cs
- ThreadAttributes.cs
- ButtonField.cs
- DataFormats.cs
- DoubleAnimation.cs
- FamilyTypeface.cs
- ConnectionOrientedTransportElement.cs
- DiscardableAttribute.cs
- Model3D.cs
- LicenseManager.cs
- CollectionContainer.cs
- XPathException.cs
- SecurityTokenSerializer.cs
- DataTableClearEvent.cs
- ScriptReferenceEventArgs.cs
- SBCSCodePageEncoding.cs
- EnumMember.cs
- CheckBoxField.cs
- TextOutput.cs
- SQLInt64.cs
- IIS7UserPrincipal.cs
- KeyboardEventArgs.cs
- NativeMethods.cs
- TextBoxLine.cs
- WinOEToolBoxItem.cs
- Expression.cs
- NamespaceList.cs
- CodeBlockBuilder.cs
- FrugalList.cs
- WindowsAuthenticationEventArgs.cs
- DescriptionAttribute.cs
- HeaderUtility.cs
- ExternalFile.cs
- ResXBuildProvider.cs
- TextChangedEventArgs.cs
- AndAlso.cs
- RegexCompilationInfo.cs
- ClientSponsor.cs
- HttpException.cs
- BasicHttpSecurity.cs
- ImageFormat.cs
- FontDialog.cs
- NetDispatcherFaultException.cs
- ObjectReferenceStack.cs
- ScalarRestriction.cs
- GenericEnumerator.cs
- InitializationEventAttribute.cs
- FastEncoderWindow.cs
- X509Certificate2Collection.cs
- IteratorAsyncResult.cs
- ThreadLocal.cs
- ValidationError.cs
- MarkupCompiler.cs
- EmbossBitmapEffect.cs
- DetailsViewPagerRow.cs
- DetailsViewDeletedEventArgs.cs
- WinFormsUtils.cs
- DataGridViewRowPostPaintEventArgs.cs
- WindowAutomationPeer.cs
- ColumnMapVisitor.cs
- MinimizableAttributeTypeConverter.cs
- StateItem.cs
- SerTrace.cs
- SerialPinChanges.cs
- ArrayElementGridEntry.cs
- WSSecurityPolicy.cs
- LogLogRecord.cs
- AdornerHitTestResult.cs
- ConfigurationValidatorAttribute.cs
- XmlNodeList.cs
- XmlSchemaFacet.cs
- Utils.cs
- ResXResourceWriter.cs
- NativeWindow.cs
- ResourceDisplayNameAttribute.cs
- FormsAuthenticationEventArgs.cs
- Graph.cs
- PeerReferralPolicy.cs
- UnknownBitmapDecoder.cs
- SecurityManager.cs
- DataGridViewCellLinkedList.cs
- XmlDictionaryReader.cs
- WindowsListBox.cs
- SmtpAuthenticationManager.cs
- Window.cs