Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripAdornerWindowService.cs
- CodeMemberEvent.cs
- UnsafeNativeMethods.cs
- DynamicPropertyHolder.cs
- RegisteredArrayDeclaration.cs
- __Filters.cs
- BlockCollection.cs
- StrokeNodeEnumerator.cs
- DataGridPagerStyle.cs
- LogRestartAreaEnumerator.cs
- XmlElementCollection.cs
- RestHandler.cs
- ResXFileRef.cs
- DataPagerFieldCommandEventArgs.cs
- TransactionFilter.cs
- SerializationInfo.cs
- InvalidFilterCriteriaException.cs
- RepeaterItemCollection.cs
- SystemIPInterfaceProperties.cs
- AnnouncementSendsAsyncResult.cs
- DataGridTablesFactory.cs
- AtomMaterializer.cs
- UntrustedRecipientException.cs
- LocalizedNameDescriptionPair.cs
- AdRotatorDesigner.cs
- TimerExtension.cs
- CodeTypeMemberCollection.cs
- TreeBuilder.cs
- SqlInternalConnection.cs
- Compiler.cs
- SqlDependencyListener.cs
- CardSpaceException.cs
- TableLayoutSettings.cs
- InputLangChangeRequestEvent.cs
- returneventsaver.cs
- SQLResource.cs
- RemotingConfiguration.cs
- SQLInt32Storage.cs
- IdentityModelStringsVersion1.cs
- XmlProcessingInstruction.cs
- ArrangedElement.cs
- ServicePointManager.cs
- WindowsGraphics.cs
- MultipleViewPatternIdentifiers.cs
- PackagingUtilities.cs
- SplitterCancelEvent.cs
- WsatEtwTraceListener.cs
- ItemContainerGenerator.cs
- HyperLinkField.cs
- LongValidatorAttribute.cs
- ListViewDataItem.cs
- PrimitiveSchema.cs
- ProviderMetadata.cs
- EndPoint.cs
- MatrixCamera.cs
- EdmMember.cs
- ToolStripOverflowButton.cs
- StreamReader.cs
- TraceHandlerErrorFormatter.cs
- AppDomainAttributes.cs
- WriteableBitmap.cs
- SystemIPv6InterfaceProperties.cs
- SafeFindHandle.cs
- PathFigure.cs
- MetadataUtilsSmi.cs
- PathGeometry.cs
- SkinIDTypeConverter.cs
- LockCookie.cs
- StreamReader.cs
- DispatcherProcessingDisabled.cs
- WebMessageEncodingBindingElement.cs
- SessionStateContainer.cs
- CustomValidator.cs
- VisualBrush.cs
- TextServicesDisplayAttribute.cs
- WindowsRegion.cs
- SelectionWordBreaker.cs
- ConstraintEnumerator.cs
- XmlDocumentSerializer.cs
- Models.cs
- GeneralTransformGroup.cs
- EventLogger.cs
- ControlAdapter.cs
- CustomAttributeFormatException.cs
- RowsCopiedEventArgs.cs
- RuntimeConfig.cs
- TextTreeUndoUnit.cs
- StringFreezingAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- PropagationProtocolsTracing.cs
- SqlCacheDependency.cs
- MethodCallConverter.cs
- State.cs
- ToolboxBitmapAttribute.cs
- SignedXmlDebugLog.cs
- CounterSampleCalculator.cs
- SmtpSection.cs
- HttpCacheParams.cs
- HwndHost.cs
- MetadataSet.cs