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
- FormsAuthenticationUserCollection.cs
- FreezableDefaultValueFactory.cs
- IndependentlyAnimatedPropertyMetadata.cs
- XmlCustomFormatter.cs
- DataRow.cs
- EmissiveMaterial.cs
- IndexOutOfRangeException.cs
- CheckPair.cs
- FlowDocumentScrollViewer.cs
- ButtonFlatAdapter.cs
- ScrollItemPattern.cs
- SchemaTypeEmitter.cs
- ReturnEventArgs.cs
- ITreeGenerator.cs
- EntityModelBuildProvider.cs
- RenderData.cs
- Token.cs
- TextEditorContextMenu.cs
- BindingExpressionBase.cs
- XmlWriterSettings.cs
- ISFClipboardData.cs
- COM2EnumConverter.cs
- LeaseManager.cs
- GeometryDrawing.cs
- DataFormats.cs
- CodeThrowExceptionStatement.cs
- ObjectToModelValueConverter.cs
- XmlValidatingReader.cs
- StatusBarPanelClickEvent.cs
- WindowsSecurityToken.cs
- AssemblyAttributesGoHere.cs
- TabControlEvent.cs
- TdsParserStateObject.cs
- EndpointAddressAugust2004.cs
- SQLDouble.cs
- IndicFontClient.cs
- HandoffBehavior.cs
- DbSetClause.cs
- COM2PropertyBuilderUITypeEditor.cs
- Vector3DCollection.cs
- SqlDataSourceStatusEventArgs.cs
- MenuItemAutomationPeer.cs
- IsolatedStoragePermission.cs
- QilFunction.cs
- AsyncDataRequest.cs
- XpsResourceDictionary.cs
- XmlReader.cs
- EntityProviderFactory.cs
- ServiceOperation.cs
- ToolStripLabel.cs
- BasicKeyConstraint.cs
- ContractMapping.cs
- ExpressionBindings.cs
- RtfControlWordInfo.cs
- DecimalKeyFrameCollection.cs
- DeferredElementTreeState.cs
- TypeUtil.cs
- MachineKeyConverter.cs
- DiscoveryProxy.cs
- Span.cs
- BoolExpr.cs
- ToolboxComponentsCreatingEventArgs.cs
- RadioButtonStandardAdapter.cs
- ConstantSlot.cs
- VisualStyleRenderer.cs
- ConfigurationValidatorAttribute.cs
- RequestBringIntoViewEventArgs.cs
- TabletCollection.cs
- ConvertTextFrag.cs
- CaseCqlBlock.cs
- ReadContentAsBinaryHelper.cs
- RegularExpressionValidator.cs
- SQLSingleStorage.cs
- XmlDataContract.cs
- XPathPatternParser.cs
- CustomCategoryAttribute.cs
- FixedTextSelectionProcessor.cs
- PropertyStore.cs
- PolyBezierSegment.cs
- EntityDesignPluralizationHandler.cs
- RadioButtonFlatAdapter.cs
- WebPartAuthorizationEventArgs.cs
- DragCompletedEventArgs.cs
- Ray3DHitTestResult.cs
- CompoundFileIOPermission.cs
- DataGridViewRowEventArgs.cs
- ConnectionManagementElementCollection.cs
- ReadOnlyState.cs
- TreeBuilder.cs
- DecimalConverter.cs
- Utils.cs
- EventLogPermissionAttribute.cs
- OperationCanceledException.cs
- Condition.cs
- TextFormatterContext.cs
- FormViewInsertedEventArgs.cs
- OutOfMemoryException.cs
- CommentEmitter.cs
- OleDbFactory.cs
- DoubleAnimationClockResource.cs