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
- AnimatedTypeHelpers.cs
- Int32Rect.cs
- _FtpDataStream.cs
- FamilyMap.cs
- SliderAutomationPeer.cs
- ModelFactory.cs
- TraceContextRecord.cs
- XmlSchema.cs
- SortExpressionBuilder.cs
- TextRangeAdaptor.cs
- StorageMappingItemLoader.cs
- PropertySourceInfo.cs
- TextServicesProperty.cs
- BindingList.cs
- TemplatePropertyEntry.cs
- ConversionValidationRule.cs
- FormatStringEditor.cs
- FixedDocumentSequencePaginator.cs
- WebBaseEventKeyComparer.cs
- TerminatorSinks.cs
- MembershipPasswordException.cs
- InfoCardClaimCollection.cs
- DataGridColumnReorderingEventArgs.cs
- SqlClientPermission.cs
- CharEntityEncoderFallback.cs
- StylusSystemGestureEventArgs.cs
- cookie.cs
- PolyBezierSegment.cs
- FormView.cs
- ButtonBaseAdapter.cs
- AccessViolationException.cs
- BuildManager.cs
- QilCloneVisitor.cs
- securitycriticaldataClass.cs
- ActivityCodeDomSerializationManager.cs
- basevalidator.cs
- RootBuilder.cs
- FormsAuthenticationUser.cs
- XmlEntity.cs
- SyndicationSerializer.cs
- Normalization.cs
- CodeAccessPermission.cs
- ActivityContext.cs
- Peer.cs
- TypefaceMetricsCache.cs
- HTTPNotFoundHandler.cs
- GcHandle.cs
- Style.cs
- EventSourceCreationData.cs
- httpserverutility.cs
- ScrollChrome.cs
- DrawListViewSubItemEventArgs.cs
- ItemMap.cs
- BrowserCapabilitiesFactory.cs
- BasicCellRelation.cs
- AppLevelCompilationSectionCache.cs
- SiteMapNodeItemEventArgs.cs
- StreamWriter.cs
- Condition.cs
- UtilityExtension.cs
- FileIOPermission.cs
- VectorCollection.cs
- GridViewColumnHeaderAutomationPeer.cs
- FloaterBaseParagraph.cs
- WebControlsSection.cs
- DesignTimeTemplateParser.cs
- ListItemConverter.cs
- smtpconnection.cs
- WeakReferenceKey.cs
- PrintEvent.cs
- SourceFileBuildProvider.cs
- XsltSettings.cs
- StylusCollection.cs
- BlurBitmapEffect.cs
- ReadOnlyHierarchicalDataSourceView.cs
- EditingCommands.cs
- HtmlElement.cs
- EntityDataSourceDataSelectionPanel.cs
- RealizedColumnsBlock.cs
- DeflateEmulationStream.cs
- OptionalMessageQuery.cs
- connectionpool.cs
- Transform3DGroup.cs
- ObjectNavigationPropertyMapping.cs
- OracleBFile.cs
- KeyInstance.cs
- ThreadStaticAttribute.cs
- RawStylusInputCustomData.cs
- WebPartZoneBase.cs
- RequestCacheEntry.cs
- FontNamesConverter.cs
- DurationConverter.cs
- TrustManagerMoreInformation.cs
- MessageFormatterConverter.cs
- WindowsIdentity.cs
- SqlRowUpdatingEvent.cs
- InvalidProgramException.cs
- NativeMethods.cs
- XmlSchemaGroupRef.cs
- Encoder.cs