Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / DeferrableContentConverter.cs / 1305600 / DeferrableContentConverter.cs
using System; using System.IO; using System.Net; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Diagnostics; using System.ComponentModel; using System.Windows.Threading; using System.Windows.Media; using System.IO.Packaging; using MS.Internal.IO.Packaging; // for PackageCacheEntry using System.Globalization; using System.Windows.Navigation; using MS.Internal; using MS.Internal.Utility; using MS.Internal.AppModel; using MS.Utility; using System.Xaml; using System.Windows.Baml2006; using System.Windows.Markup; namespace System.Windows { public class DeferrableContentConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (typeof(Stream).IsAssignableFrom(sourceType) || sourceType == typeof(byte[])) { return true; } return base.CanConvertFrom(context, sourceType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null) { if (context == null) { throw new ArgumentNullException("context"); } XamlSchemaContext xamlSchemaContext = RequireService(context).SchemaContext; Baml2006SchemaContext schemaContext = xamlSchemaContext as Baml2006SchemaContext; if (schemaContext == null) { throw new InvalidOperationException(SR.Get(SRID.ExpectedBamlSchemaContext)); } IXamlObjectWriterFactory objectWriterFactory = RequireService (context); IProvideValueTarget ipvt = RequireService (context); IRootObjectProvider rootObjectProvider = RequireService (context); ResourceDictionary dictionary = ipvt.TargetObject as ResourceDictionary; if (dictionary == null) { throw new InvalidOperationException(SR.Get(SRID.ExpectedResourceDictionaryTarget)); } Stream stream = value as Stream; if (stream == null) { byte[] bytes = value as byte[]; if (bytes != null) { stream = new MemoryStream(bytes); } } if (stream == null) { throw new InvalidOperationException(SR.Get(SRID.ExpectedBinaryContent)); } // DeferrableContent deferrableContext = new DeferrableContent(stream, schemaContext, objectWriterFactory, context, rootObjectProvider.RootObject); return deferrableContext; } return base.ConvertFrom(context, culture, value); } private static T RequireService (IServiceProvider provider) where T : class { T result = provider.GetService(typeof(T)) as T; if (result == null) { throw new InvalidOperationException(SR.Get(SRID.DeferringLoaderNoContext, typeof(DeferrableContentConverter).Name, typeof(T).Name)); } return result; } } } // 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
- Trustee.cs
- InternalsVisibleToAttribute.cs
- Sentence.cs
- UpdateExpressionVisitor.cs
- CodeSubDirectoriesCollection.cs
- DataGridrowEditEndingEventArgs.cs
- X509Certificate2Collection.cs
- _ListenerResponseStream.cs
- LayoutEditorPart.cs
- TrustLevel.cs
- TextChange.cs
- ModifierKeysValueSerializer.cs
- StoreItemCollection.Loader.cs
- ObjectHandle.cs
- HwndSubclass.cs
- XPathSelectionIterator.cs
- MSAANativeProvider.cs
- DeferredRunTextReference.cs
- QilPatternFactory.cs
- TextHidden.cs
- HtmlGenericControl.cs
- OleDbTransaction.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- PresentationSource.cs
- RequestContextBase.cs
- Properties.cs
- UrlPropertyAttribute.cs
- ColorAnimationUsingKeyFrames.cs
- PropertyEmitter.cs
- RecognitionEventArgs.cs
- TextFormatterHost.cs
- PrivilegeNotHeldException.cs
- MdiWindowListItemConverter.cs
- SoapIgnoreAttribute.cs
- CloudCollection.cs
- WinEventHandler.cs
- WorkerRequest.cs
- OleDbFactory.cs
- XmlSchemaAttributeGroup.cs
- AuthStoreRoleProvider.cs
- PrintDialogException.cs
- HitTestResult.cs
- ToolStripOverflow.cs
- PointValueSerializer.cs
- EditCommandColumn.cs
- UserMapPath.cs
- X509CertificateStore.cs
- TableColumn.cs
- ISFTagAndGuidCache.cs
- NativeMethods.cs
- X509IssuerSerialKeyIdentifierClause.cs
- EditorBrowsableAttribute.cs
- _DynamicWinsockMethods.cs
- ImplicitInputBrush.cs
- WindowsTab.cs
- RemotingConfiguration.cs
- ModulesEntry.cs
- XPathDocumentNavigator.cs
- ProcessHost.cs
- ConfigXmlWhitespace.cs
- WebReferencesBuildProvider.cs
- TargetInvocationException.cs
- MenuCommandsChangedEventArgs.cs
- PasswordTextNavigator.cs
- XmlHierarchyData.cs
- MaterialGroup.cs
- CodeMemberEvent.cs
- Timer.cs
- SequenceDesignerAccessibleObject.cs
- MenuEventArgs.cs
- XPathExpr.cs
- PermissionSetTriple.cs
- DbMetaDataCollectionNames.cs
- DbParameterHelper.cs
- SchemaComplexType.cs
- WebEventCodes.cs
- DynamicDataExtensions.cs
- Visual.cs
- BamlRecordReader.cs
- PostBackOptions.cs
- Triplet.cs
- RegionData.cs
- XmlDataSource.cs
- LookupNode.cs
- AttachedPropertyMethodSelector.cs
- ProbeMatches11.cs
- XmlCompatibilityReader.cs
- WorkflowNamespace.cs
- _MultipleConnectAsync.cs
- SamlAssertionKeyIdentifierClause.cs
- SystemWebCachingSectionGroup.cs
- coordinatorscratchpad.cs
- MappingException.cs
- MessageHeaderException.cs
- ToolBarButtonDesigner.cs
- Panel.cs
- GPRECT.cs
- MulticastDelegate.cs
- WebPartConnectionsCloseVerb.cs
- oledbmetadatacollectionnames.cs