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
- IntSecurity.cs
- GenericsInstances.cs
- LoginName.cs
- ListBox.cs
- SoapFault.cs
- WebPartCatalogAddVerb.cs
- XamlPathDataSerializer.cs
- RoutedEvent.cs
- VBIdentifierDesigner.xaml.cs
- MiniCustomAttributeInfo.cs
- OutputWindow.cs
- TextTreeRootTextBlock.cs
- GeometryModel3D.cs
- TypeUsageBuilder.cs
- BindUriHelper.cs
- SiteMapDataSource.cs
- C14NUtil.cs
- StaticFileHandler.cs
- KeyInterop.cs
- BreadCrumbTextConverter.cs
- SecurityPermission.cs
- SchemaTableColumn.cs
- DataGrid.cs
- XPathBuilder.cs
- FreezableDefaultValueFactory.cs
- XmlObjectSerializer.cs
- PieceDirectory.cs
- BamlLocalizabilityResolver.cs
- VisualStyleRenderer.cs
- MULTI_QI.cs
- UIAgentMonitor.cs
- TextLine.cs
- OdbcParameterCollection.cs
- DescendantQuery.cs
- ExpressionBuilder.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- RegisteredDisposeScript.cs
- SessionEndingEventArgs.cs
- SecurityException.cs
- InvocationExpression.cs
- TextContainerChangedEventArgs.cs
- AssertFilter.cs
- ToolStripItemCollection.cs
- JournalEntry.cs
- AdobeCFFWrapper.cs
- UnSafeCharBuffer.cs
- sapiproxy.cs
- ObjectAnimationBase.cs
- DocumentsTrace.cs
- DataBindingCollection.cs
- RtfToken.cs
- HashRepartitionStream.cs
- CodeCatchClause.cs
- TakeOrSkipQueryOperator.cs
- EmptyControlCollection.cs
- SafeNativeMethods.cs
- IndicCharClassifier.cs
- TypeConverterHelper.cs
- EmbeddedObject.cs
- CommandBindingCollection.cs
- XmlSerializerAssemblyAttribute.cs
- MimeObjectFactory.cs
- Rule.cs
- ProcessModuleCollection.cs
- LeaseManager.cs
- ValuePatternIdentifiers.cs
- EntityDataSourceMemberPath.cs
- ObjectCache.cs
- HttpContext.cs
- CommonDialog.cs
- DataServiceRequestException.cs
- CubicEase.cs
- ArrangedElement.cs
- WaitHandle.cs
- ContentTextAutomationPeer.cs
- commandenforcer.cs
- XamlDesignerSerializationManager.cs
- dataprotectionpermission.cs
- InkCanvas.cs
- Relationship.cs
- RangeValidator.cs
- Visual3D.cs
- InputBinding.cs
- HMACSHA256.cs
- CodeGroup.cs
- CookieParameter.cs
- PointCollectionValueSerializer.cs
- HashCryptoHandle.cs
- PageParserFilter.cs
- Win32MouseDevice.cs
- TextRunCache.cs
- HttpCapabilitiesSectionHandler.cs
- XmlSchemaParticle.cs
- StateDesigner.CommentLayoutGlyph.cs
- JoinSymbol.cs
- CalendarBlackoutDatesCollection.cs
- InProcStateClientManager.cs
- COM2ExtendedBrowsingHandler.cs
- SafeFileMappingHandle.cs
- DataSourceNameHandler.cs