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
- XmlSerializationGeneratedCode.cs
- XpsFilter.cs
- MonthCalendar.cs
- StringUtil.cs
- HeaderPanel.cs
- PointHitTestResult.cs
- Speller.cs
- SqlDataSourceStatusEventArgs.cs
- Point4D.cs
- XmlHierarchicalDataSourceView.cs
- HttpCookieCollection.cs
- XmlExtensionFunction.cs
- ProxyFragment.cs
- ViewStateException.cs
- ProcessManager.cs
- ComboBoxAutomationPeer.cs
- OutputCacheProfile.cs
- ComponentCommands.cs
- ServiceObjectContainer.cs
- SmtpReplyReaderFactory.cs
- AggregateNode.cs
- PageTheme.cs
- TogglePatternIdentifiers.cs
- BlurBitmapEffect.cs
- EventPropertyMap.cs
- TableLayoutPanelDesigner.cs
- XmlLoader.cs
- XmlImplementation.cs
- Point3DValueSerializer.cs
- SignatureToken.cs
- OdbcParameterCollection.cs
- OdbcConnectionHandle.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- MessageLogTraceRecord.cs
- DATA_BLOB.cs
- WebConvert.cs
- EntityTypeBase.cs
- PreservationFileWriter.cs
- ProviderBase.cs
- X509Extension.cs
- PersonalizationEntry.cs
- _SafeNetHandles.cs
- CharEnumerator.cs
- ValueChangedEventManager.cs
- ComboBox.cs
- DesignBindingPicker.cs
- Qualifier.cs
- TokenBasedSet.cs
- CertificateManager.cs
- ObjectReaderCompiler.cs
- InstalledFontCollection.cs
- CompilerCollection.cs
- ConstraintConverter.cs
- AutomationPropertyInfo.cs
- HttpDictionary.cs
- CompressedStack.cs
- StaticExtension.cs
- HttpCapabilitiesEvaluator.cs
- XmlNamespaceManager.cs
- TTSEvent.cs
- MarkupCompiler.cs
- HMACMD5.cs
- IntSumAggregationOperator.cs
- HtmlString.cs
- MissingFieldException.cs
- D3DImage.cs
- ImmutableObjectAttribute.cs
- Pen.cs
- CodeCompileUnit.cs
- ParallelTimeline.cs
- XmlSerializationGeneratedCode.cs
- ImageSourceValueSerializer.cs
- ValidatedControlConverter.cs
- XmlTextReaderImplHelpers.cs
- ColorDialog.cs
- TextParagraphView.cs
- ReflectionUtil.cs
- PanelStyle.cs
- GridEntryCollection.cs
- WebConfigurationFileMap.cs
- BlurBitmapEffect.cs
- OneToOneMappingSerializer.cs
- OleDbFactory.cs
- PersianCalendar.cs
- SimplePropertyEntry.cs
- _TransmitFileOverlappedAsyncResult.cs
- CheckBox.cs
- Misc.cs
- WebZone.cs
- MetadataUtil.cs
- FixedDSBuilder.cs
- BamlRecords.cs
- Utils.cs
- RelOps.cs
- DataControlFieldHeaderCell.cs
- cryptoapiTransform.cs
- AssemblyResourceLoader.cs
- DbConnectionClosed.cs
- DataList.cs
- XmlSerializerImportOptions.cs