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
- Trace.cs
- ResolveMatchesMessageCD1.cs
- _BaseOverlappedAsyncResult.cs
- DataGridViewImageCell.cs
- DataRowChangeEvent.cs
- IConvertible.cs
- SchemaAttDef.cs
- InputScope.cs
- WebPartCollection.cs
- DurationConverter.cs
- AttributeTable.cs
- XmlIterators.cs
- XmlDownloadManager.cs
- HttpCacheVary.cs
- ScrollChrome.cs
- Matrix3DValueSerializer.cs
- Binding.cs
- MultilineStringConverter.cs
- CodeNamespaceImport.cs
- DesignerValidatorAdapter.cs
- DocumentViewerHelper.cs
- CompilerParameters.cs
- PinnedBufferMemoryStream.cs
- WorkflowInstanceExtensionManager.cs
- Filter.cs
- OpCellTreeNode.cs
- Dictionary.cs
- DateTimeUtil.cs
- HttpWebRequest.cs
- TranslateTransform3D.cs
- ComponentManagerBroker.cs
- Timer.cs
- ContainerParagraph.cs
- DataObjectAttribute.cs
- DataGridViewAutoSizeModeEventArgs.cs
- EventLogEntryCollection.cs
- BehaviorEditorPart.cs
- QueryPrefixOp.cs
- BindStream.cs
- StrongNameUtility.cs
- RectValueSerializer.cs
- WebPartCloseVerb.cs
- MediaScriptCommandRoutedEventArgs.cs
- ApplicationDirectoryMembershipCondition.cs
- UpdatePanel.cs
- TextSelectionHelper.cs
- WebReferenceOptions.cs
- BatchStream.cs
- DetailsViewDeleteEventArgs.cs
- DynamicPropertyHolder.cs
- HandleExceptionArgs.cs
- ClosureBinding.cs
- TextBoxDesigner.cs
- CodeIterationStatement.cs
- FormsAuthenticationUser.cs
- JoinTreeSlot.cs
- WebPartManagerInternals.cs
- RelationshipNavigation.cs
- HttpRuntime.cs
- DelegateInArgument.cs
- DataGridSortingEventArgs.cs
- MembershipSection.cs
- SplineKeyFrames.cs
- OdbcCommand.cs
- EnumMemberAttribute.cs
- AssemblyFilter.cs
- PaperSize.cs
- RootBrowserWindowProxy.cs
- TargetControlTypeAttribute.cs
- NavigationExpr.cs
- SapiInterop.cs
- PackageStore.cs
- EditorAttribute.cs
- SQLGuidStorage.cs
- Accessors.cs
- ListMarkerSourceInfo.cs
- HtmlSelect.cs
- DataListCommandEventArgs.cs
- MenuEventArgs.cs
- InputBindingCollection.cs
- PositiveTimeSpanValidatorAttribute.cs
- SQLUtility.cs
- Exceptions.cs
- ResourceSetExpression.cs
- QueueTransferProtocol.cs
- _Rfc2616CacheValidators.cs
- WindowsImpersonationContext.cs
- DBDataPermissionAttribute.cs
- HyperLinkDataBindingHandler.cs
- BaseTemplateParser.cs
- QilCloneVisitor.cs
- Point.cs
- ModelEditingScope.cs
- FieldDescriptor.cs
- DeploymentSection.cs
- RecognitionResult.cs
- ErrorTableItemStyle.cs
- PropertyConverter.cs
- Viewport3DVisual.cs
- DurableInstanceProvider.cs