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
- ServiceNotStartedException.cs
- SHA384.cs
- SystemIcmpV4Statistics.cs
- DataGridDetailsPresenter.cs
- IChannel.cs
- ContextMenu.cs
- WindowsIdentity.cs
- ResXDataNode.cs
- DataGridViewTopLeftHeaderCell.cs
- InputLanguageProfileNotifySink.cs
- ComplexBindingPropertiesAttribute.cs
- SafeNativeMethods.cs
- GeometryGroup.cs
- SchemaImporter.cs
- AnchoredBlock.cs
- Dump.cs
- SafeNativeMethods.cs
- BindableAttribute.cs
- XPathNavigatorKeyComparer.cs
- XmlStreamNodeWriter.cs
- StateFinalizationDesigner.cs
- XmlWrappingReader.cs
- HtmlGenericControl.cs
- SoapClientProtocol.cs
- _AutoWebProxyScriptEngine.cs
- TextPatternIdentifiers.cs
- SoapSchemaImporter.cs
- WebZone.cs
- PeerTransportCredentialType.cs
- ConfigXmlCDataSection.cs
- HtmlEmptyTagControlBuilder.cs
- TreeNodeStyleCollectionEditor.cs
- COSERVERINFO.cs
- DBConnection.cs
- ViewEventArgs.cs
- Run.cs
- ObjectDataSourceFilteringEventArgs.cs
- AutomationProperties.cs
- CheckBoxFlatAdapter.cs
- DictionaryEntry.cs
- DoubleAnimationUsingPath.cs
- XmlSchemaExporter.cs
- HeaderCollection.cs
- DataObject.cs
- ServiceInfoCollection.cs
- SapiAttributeParser.cs
- OutputCacheSettings.cs
- SchemaNotation.cs
- Cursor.cs
- DataError.cs
- TextPointer.cs
- ExtractedStateEntry.cs
- AccessDataSource.cs
- InputMethodStateChangeEventArgs.cs
- VerificationAttribute.cs
- XmlWrappingReader.cs
- Int32Converter.cs
- FileSystemInfo.cs
- ExpressionConverter.cs
- TokenFactoryFactory.cs
- CaseInsensitiveHashCodeProvider.cs
- SqlDependency.cs
- AllMembershipCondition.cs
- ComContractElementCollection.cs
- GridViewRow.cs
- FontUnit.cs
- CopyAttributesAction.cs
- PrinterResolution.cs
- PropertyTabAttribute.cs
- counter.cs
- EpmSourcePathSegment.cs
- TransformationRules.cs
- AssemblyUtil.cs
- SizeChangedEventArgs.cs
- WebPartHeaderCloseVerb.cs
- ReverseInheritProperty.cs
- DockingAttribute.cs
- ArithmeticLiteral.cs
- DesignerLabelAdapter.cs
- X509Extension.cs
- TrackingProfileDeserializationException.cs
- AutoSizeToolBoxItem.cs
- TextSearch.cs
- CheckBoxList.cs
- ServiceOperationInvoker.cs
- HMACSHA1.cs
- Highlights.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- NullableBoolConverter.cs
- SortedList.cs
- AvTraceFormat.cs
- ControlBuilderAttribute.cs
- EntityTransaction.cs
- UpDownBaseDesigner.cs
- ServiceDescription.cs
- FormatterServices.cs
- LayoutTable.cs
- ColorMatrix.cs
- DesignerTextBoxAdapter.cs
- GeneralTransformGroup.cs