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
- FrugalList.cs
- XmlLangPropertyAttribute.cs
- EncoderBestFitFallback.cs
- TraceSource.cs
- XPathEmptyIterator.cs
- DataPagerField.cs
- XmlDocumentFragment.cs
- DbProviderFactories.cs
- LeftCellWrapper.cs
- BinaryFormatter.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- MultiDataTrigger.cs
- AppearanceEditorPart.cs
- ChannelFactoryBase.cs
- ProxyManager.cs
- TableLayoutStyleCollection.cs
- DesignerCategoryAttribute.cs
- PseudoWebRequest.cs
- BrowserCapabilitiesFactoryBase.cs
- ColorKeyFrameCollection.cs
- InvalidPipelineStoreException.cs
- Preprocessor.cs
- BigIntegerStorage.cs
- KeyFrames.cs
- SoapObjectReader.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ZoneIdentityPermission.cs
- HostingEnvironmentWrapper.cs
- LinkArea.cs
- OrderedDictionary.cs
- ContextMenuStripActionList.cs
- InfiniteIntConverter.cs
- TableCellCollection.cs
- DataGridCell.cs
- PageThemeBuildProvider.cs
- SqlDataAdapter.cs
- StoreConnection.cs
- ProvidePropertyAttribute.cs
- AliasExpr.cs
- OutputWindow.cs
- StringAnimationBase.cs
- ValidationRuleCollection.cs
- LocalizationComments.cs
- HelpProvider.cs
- FactoryRecord.cs
- CopyCodeAction.cs
- Encoder.cs
- CqlErrorHelper.cs
- XmlSchemaGroupRef.cs
- Operators.cs
- HostProtectionPermission.cs
- CapabilitiesPattern.cs
- DateTimeStorage.cs
- PropertyItemInternal.cs
- GetPageCompletedEventArgs.cs
- SafeRightsManagementQueryHandle.cs
- ScriptIgnoreAttribute.cs
- Row.cs
- ConfigurationSectionCollection.cs
- ReflectionUtil.cs
- HtmlFormWrapper.cs
- InfoCardTrace.cs
- OleDbRowUpdatedEvent.cs
- SafeEventLogWriteHandle.cs
- SqlRetyper.cs
- SQLInt32Storage.cs
- EventListenerClientSide.cs
- ApplyTemplatesAction.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- PropertyTab.cs
- NameValueSectionHandler.cs
- Signature.cs
- TransferRequestHandler.cs
- CacheAxisQuery.cs
- WebPartTransformerCollection.cs
- OpenTypeLayout.cs
- ToolStrip.cs
- BaseParser.cs
- JulianCalendar.cs
- SqlUdtInfo.cs
- SrgsText.cs
- MailHeaderInfo.cs
- Renderer.cs
- SecurityKeyIdentifier.cs
- DoubleLinkList.cs
- _NestedSingleAsyncResult.cs
- AspCompat.cs
- MimePart.cs
- DataListItem.cs
- DateTimeConverter2.cs
- SelectionItemPattern.cs
- BuildProviderAppliesToAttribute.cs
- WebPartConnectVerb.cs
- XmlUtil.cs
- ParenExpr.cs
- XmlReaderSettings.cs
- URLString.cs
- Facet.cs
- HttpWebRequestElement.cs
- FixedSOMFixedBlock.cs