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
- MenuItemBindingCollection.cs
- Ray3DHitTestResult.cs
- AsymmetricAlgorithm.cs
- TextDecorations.cs
- BezierSegment.cs
- HelloMessage11.cs
- OleDbTransaction.cs
- CompilationRelaxations.cs
- WebEventTraceProvider.cs
- FilterQuery.cs
- SemaphoreSecurity.cs
- DockEditor.cs
- ProcessHostConfigUtils.cs
- SafeLibraryHandle.cs
- ProxyWebPart.cs
- StringExpressionSet.cs
- XmlNodeList.cs
- ConstructorArgumentAttribute.cs
- TemplateBuilder.cs
- InstanceKeyView.cs
- PrePostDescendentsWalker.cs
- QilFunction.cs
- TypeSemantics.cs
- ellipse.cs
- CompareValidator.cs
- ResolvedKeyFrameEntry.cs
- Registry.cs
- MeasurementDCInfo.cs
- PresentationUIStyleResources.cs
- TTSEngineProxy.cs
- WindowsUpDown.cs
- SafeNativeMethods.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- Size3DConverter.cs
- CqlParser.cs
- CompilerCollection.cs
- DiscoveryReferences.cs
- FramingFormat.cs
- XmlDownloadManager.cs
- MemberHolder.cs
- sqlstateclientmanager.cs
- ProviderSettings.cs
- Vector3D.cs
- __ConsoleStream.cs
- HttpRuntimeSection.cs
- ScaleTransform3D.cs
- DbDataSourceEnumerator.cs
- DaylightTime.cs
- ErrorsHelper.cs
- ZipIOExtraField.cs
- CaseStatement.cs
- AssemblyName.cs
- DocumentViewerBaseAutomationPeer.cs
- DelegateTypeInfo.cs
- ClientEventManager.cs
- BamlLocalizabilityResolver.cs
- GridViewAutoFormat.cs
- FramingEncoders.cs
- MultipartContentParser.cs
- Fx.cs
- EntityChangedParams.cs
- RoleGroup.cs
- ConfigurationSectionGroup.cs
- BaseUriHelper.cs
- KeyManager.cs
- PopupControlService.cs
- DetailsViewRowCollection.cs
- UnsafeNativeMethodsTablet.cs
- XmlSignatureProperties.cs
- StateDesigner.TransitionInfo.cs
- RetrieveVirtualItemEventArgs.cs
- TCPListener.cs
- OleDbParameter.cs
- StoreContentChangedEventArgs.cs
- RuleEngine.cs
- Wizard.cs
- DoubleStorage.cs
- Run.cs
- RSAPKCS1SignatureFormatter.cs
- SharedPerformanceCounter.cs
- AliasedExpr.cs
- EncoderNLS.cs
- FileRecordSequenceHelper.cs
- FastPropertyAccessor.cs
- LinearGradientBrush.cs
- ThicknessAnimationUsingKeyFrames.cs
- MissingSatelliteAssemblyException.cs
- TagPrefixInfo.cs
- OptimizedTemplateContentHelper.cs
- WebServiceMethodData.cs
- ClientTargetCollection.cs
- ClientUtils.cs
- PerfService.cs
- XmlSchemaImport.cs
- HMACSHA256.cs
- GZipStream.cs
- CreateUserWizard.cs
- FixedSOMContainer.cs
- RankException.cs
- PointUtil.cs