Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / DeferrableContent.cs / 1471291 / DeferrableContent.cs
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Security; using System.Xaml; using System.Xaml.Permissions; using System.Windows.Baml2006; using System.ComponentModel; namespace System.Windows { [TypeConverter(typeof(DeferrableContentConverter))] public class DeferrableContent { ////// Critical to write: We will assert this permission before realizing the deferred content. /// Critical to read: Can be mutated via FromXml method. /// internal XamlLoadPermission LoadPermission { [SecurityCritical] get; [SecurityCritical] private set; } ////// Critical to write: This describes the content that is allowed to be loaded with LoadPermission. /// If LoadPermission is null then this is non-critical. /// Safe to read: Carries no privilege in itself. /// internal Stream Stream { [SecurityCritical, SecurityTreatAsSafe] get; [SecurityCritical] private set; } internal Baml2006SchemaContext SchemaContext { get; private set; } internal IXamlObjectWriterFactory ObjectWriterFactory { get; private set; } internal XamlObjectWriterSettings ObjectWriterParentSettings { get; private set; } internal object RootObject { get; private set; } // internal IServiceProvider ServiceProvider { get; private set; } ////// Critical: Sets critical properties LoadPermission and Stream /// Safe: Demands LoadPermission before setting it /// [SecurityCritical, SecurityTreatAsSafe] internal DeferrableContent(Stream stream, Baml2006SchemaContext schemaContext, IXamlObjectWriterFactory objectWriterFactory, IServiceProvider serviceProvider, object rootObject) { ObjectWriterParentSettings = objectWriterFactory.GetParentSettings(); if (ObjectWriterParentSettings.AccessLevel != null) { XamlLoadPermission loadPermission = new XamlLoadPermission(ObjectWriterParentSettings.AccessLevel); loadPermission.Demand(); this.LoadPermission = loadPermission; } bool assemblyTargetsFramework2 = false; // The local assembly can be null if it is not specified in the XamlReaderSettings. if (schemaContext.LocalAssembly != null) { assemblyTargetsFramework2 = schemaContext.LocalAssembly.ImageRuntimeVersion.StartsWith("v2", StringComparison.Ordinal); } // There is an incompatibility between the framework versions 3 and 4 regarding MarkupExtension resources. // In version 3, MarkupExtension resources did not provide values when looked up. // In version 4, they do. if (assemblyTargetsFramework2) { ObjectWriterParentSettings.SkipProvideValueOnRoot = true; } this.Stream = stream; this.SchemaContext = schemaContext; this.ObjectWriterFactory = objectWriterFactory; this.ServiceProvider = serviceProvider; this.RootObject = rootObject; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Security; using System.Xaml; using System.Xaml.Permissions; using System.Windows.Baml2006; using System.ComponentModel; namespace System.Windows { [TypeConverter(typeof(DeferrableContentConverter))] public class DeferrableContent { ////// Critical to write: We will assert this permission before realizing the deferred content. /// Critical to read: Can be mutated via FromXml method. /// internal XamlLoadPermission LoadPermission { [SecurityCritical] get; [SecurityCritical] private set; } ////// Critical to write: This describes the content that is allowed to be loaded with LoadPermission. /// If LoadPermission is null then this is non-critical. /// Safe to read: Carries no privilege in itself. /// internal Stream Stream { [SecurityCritical, SecurityTreatAsSafe] get; [SecurityCritical] private set; } internal Baml2006SchemaContext SchemaContext { get; private set; } internal IXamlObjectWriterFactory ObjectWriterFactory { get; private set; } internal XamlObjectWriterSettings ObjectWriterParentSettings { get; private set; } internal object RootObject { get; private set; } // internal IServiceProvider ServiceProvider { get; private set; } ////// Critical: Sets critical properties LoadPermission and Stream /// Safe: Demands LoadPermission before setting it /// [SecurityCritical, SecurityTreatAsSafe] internal DeferrableContent(Stream stream, Baml2006SchemaContext schemaContext, IXamlObjectWriterFactory objectWriterFactory, IServiceProvider serviceProvider, object rootObject) { ObjectWriterParentSettings = objectWriterFactory.GetParentSettings(); if (ObjectWriterParentSettings.AccessLevel != null) { XamlLoadPermission loadPermission = new XamlLoadPermission(ObjectWriterParentSettings.AccessLevel); loadPermission.Demand(); this.LoadPermission = loadPermission; } bool assemblyTargetsFramework2 = false; // The local assembly can be null if it is not specified in the XamlReaderSettings. if (schemaContext.LocalAssembly != null) { assemblyTargetsFramework2 = schemaContext.LocalAssembly.ImageRuntimeVersion.StartsWith("v2", StringComparison.Ordinal); } // There is an incompatibility between the framework versions 3 and 4 regarding MarkupExtension resources. // In version 3, MarkupExtension resources did not provide values when looked up. // In version 4, they do. if (assemblyTargetsFramework2) { ObjectWriterParentSettings.SkipProvideValueOnRoot = true; } this.Stream = stream; this.SchemaContext = schemaContext; this.ObjectWriterFactory = objectWriterFactory; this.ServiceProvider = serviceProvider; this.RootObject = rootObject; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeDependencyAttribute.cs
- AddInContractAttribute.cs
- TextTreeRootTextBlock.cs
- PropertyFilterAttribute.cs
- MetadataPropertyvalue.cs
- PermissionRequestEvidence.cs
- XmlNamespaceManager.cs
- MD5.cs
- ValidationErrorCollection.cs
- WebPartVerbCollection.cs
- BindableTemplateBuilder.cs
- DataSourceCache.cs
- BitmapEffectState.cs
- SecurityChannelListener.cs
- ReadOnlyPropertyMetadata.cs
- LambdaExpression.cs
- SystemIcmpV6Statistics.cs
- JsonClassDataContract.cs
- ByteAnimation.cs
- EnglishPluralizationService.cs
- SnapshotChangeTrackingStrategy.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- GridViewColumnCollectionChangedEventArgs.cs
- XmlQueryCardinality.cs
- ReversePositionQuery.cs
- CacheForPrimitiveTypes.cs
- PriorityQueue.cs
- WorkflowServiceHost.cs
- OutOfMemoryException.cs
- ErrorWrapper.cs
- WorkflowView.cs
- DataView.cs
- PatternMatcher.cs
- InternalEnumValidatorAttribute.cs
- DataGridViewColumn.cs
- SqlDataSource.cs
- StrokeCollection.cs
- XmlSchemaSimpleTypeList.cs
- ZipIOLocalFileBlock.cs
- SecurityKeyType.cs
- PerformanceCounterPermissionEntryCollection.cs
- XmlParserContext.cs
- ActiveXHost.cs
- ServiceMetadataPublishingElement.cs
- GenerateTemporaryAssemblyTask.cs
- CodeGenerator.cs
- FormsAuthenticationUser.cs
- FilteredDataSetHelper.cs
- SmiRecordBuffer.cs
- Currency.cs
- BezierSegment.cs
- _SslState.cs
- DefaultValueMapping.cs
- DocumentViewer.cs
- DatePickerAutomationPeer.cs
- LinqDataSource.cs
- GraphicsState.cs
- TaskFormBase.cs
- StoreAnnotationsMap.cs
- NamespaceMapping.cs
- LambdaCompiler.ControlFlow.cs
- FileDialog_Vista.cs
- TextElementEnumerator.cs
- HttpListener.cs
- ListControlBuilder.cs
- BindingNavigatorDesigner.cs
- RemotingException.cs
- InputLangChangeRequestEvent.cs
- OleDbTransaction.cs
- DurableInstanceProvider.cs
- HtmlEncodedRawTextWriter.cs
- DownloadProgressEventArgs.cs
- Single.cs
- wgx_render.cs
- XmlSchemaAttributeGroup.cs
- DrawingBrush.cs
- AuthenticationModuleElement.cs
- ManipulationDeltaEventArgs.cs
- Encoder.cs
- ListControl.cs
- DependencyObjectType.cs
- HttpCapabilitiesEvaluator.cs
- CodeTypeConstructor.cs
- PasswordTextNavigator.cs
- TargetConverter.cs
- FileVersion.cs
- SQLRoleProvider.cs
- LoadGrammarCompletedEventArgs.cs
- WsrmMessageInfo.cs
- DockPanel.cs
- Exception.cs
- MergeFailedEvent.cs
- UnsignedPublishLicense.cs
- SecurityKeyIdentifier.cs
- filewebresponse.cs
- ContentPresenter.cs
- ZoomComboBox.cs
- PropertyChangingEventArgs.cs
- XmlComment.cs
- PointConverter.cs