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
- dataobject.cs
- entitydatasourceentitysetnameconverter.cs
- XmlMembersMapping.cs
- _SpnDictionary.cs
- DispatchWrapper.cs
- MSHTMLHost.cs
- XPathSingletonIterator.cs
- LogEntryHeaderDeserializer.cs
- NonBatchDirectoryCompiler.cs
- SaveFileDialog.cs
- TemplateControlBuildProvider.cs
- PenThreadPool.cs
- DataGrid.cs
- Lease.cs
- SqlClientMetaDataCollectionNames.cs
- Calendar.cs
- PeerTransportListenAddressValidator.cs
- TraceProvider.cs
- MimeFormatter.cs
- IOThreadTimer.cs
- ThicknessConverter.cs
- ResourceDescriptionAttribute.cs
- UnsafeNativeMethodsMilCoreApi.cs
- Symbol.cs
- CounterCreationDataCollection.cs
- DbModificationClause.cs
- SimpleApplicationHost.cs
- FileDialogCustomPlace.cs
- PartialCachingAttribute.cs
- WinInet.cs
- EncryptedKeyIdentifierClause.cs
- StrongName.cs
- ReadOnlyObservableCollection.cs
- DecimalKeyFrameCollection.cs
- RadioButtonPopupAdapter.cs
- AutomationProperties.cs
- LicFileLicenseProvider.cs
- GridViewAutomationPeer.cs
- DetailsViewModeEventArgs.cs
- ToggleButton.cs
- BezierSegment.cs
- TrustLevel.cs
- TextBoxAutoCompleteSourceConverter.cs
- SplineQuaternionKeyFrame.cs
- Dump.cs
- RichTextBox.cs
- ObjectAssociationEndMapping.cs
- ToolBarOverflowPanel.cs
- DocumentReference.cs
- RayMeshGeometry3DHitTestResult.cs
- CodeExporter.cs
- WindowsTitleBar.cs
- XsltArgumentList.cs
- GiveFeedbackEventArgs.cs
- CustomTypeDescriptor.cs
- HttpCachePolicyWrapper.cs
- XmlAnyElementAttributes.cs
- ImageIndexConverter.cs
- SqlRecordBuffer.cs
- ConversionValidationRule.cs
- GridLength.cs
- InternalConfigSettingsFactory.cs
- ScrollChrome.cs
- Span.cs
- DataGridViewRowStateChangedEventArgs.cs
- ScriptIgnoreAttribute.cs
- UrlMapping.cs
- BulletedList.cs
- SnapshotChangeTrackingStrategy.cs
- ResourceSet.cs
- SeparatorAutomationPeer.cs
- BitmapEffectDrawing.cs
- JapaneseCalendar.cs
- RegularExpressionValidator.cs
- WmlValidationSummaryAdapter.cs
- HttpChannelBindingToken.cs
- AnnotationObservableCollection.cs
- GetLedgerEntryForRecipientRequest.cs
- DeferrableContentConverter.cs
- _NestedSingleAsyncResult.cs
- PersonalizationStateInfoCollection.cs
- DocumentPageView.cs
- TimelineGroup.cs
- FixedFindEngine.cs
- Trigger.cs
- HandlerFactoryCache.cs
- XmlChildEnumerator.cs
- PointAnimationBase.cs
- ClientApiGenerator.cs
- ValidationResults.cs
- AnnouncementEndpoint.cs
- SqlGatherProducedAliases.cs
- RepeaterCommandEventArgs.cs
- EmptyEnumerator.cs
- ArraySet.cs
- ContentPropertyAttribute.cs
- FileChangesMonitor.cs
- RecordConverter.cs
- TextElementEnumerator.cs
- TableLayout.cs