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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ThicknessConverter.cs
- WpfSharedBamlSchemaContext.cs
- DataGridViewTopRowAccessibleObject.cs
- GradientStopCollection.cs
- Composition.cs
- QilUnary.cs
- CrossContextChannel.cs
- CollectionChangedEventManager.cs
- EncodingDataItem.cs
- CodeNamespaceCollection.cs
- BufferBuilder.cs
- VisualCollection.cs
- SettingsPropertyCollection.cs
- MatrixTransform.cs
- GridViewUpdateEventArgs.cs
- SqlNotificationEventArgs.cs
- DataContractSerializerSection.cs
- CalendarDataBindingHandler.cs
- AuthenticateEventArgs.cs
- DataPager.cs
- _LocalDataStore.cs
- SamlAuthorizationDecisionClaimResource.cs
- WebResponse.cs
- IProvider.cs
- LogFlushAsyncResult.cs
- LayeredChannelListener.cs
- ClipboardProcessor.cs
- CallbackValidatorAttribute.cs
- EtwProvider.cs
- Expression.cs
- CompositeFontInfo.cs
- nulltextnavigator.cs
- WmpBitmapEncoder.cs
- Models.cs
- Action.cs
- ImageCodecInfoPrivate.cs
- SelectionRangeConverter.cs
- GenericEnumerator.cs
- XmlSchemaExporter.cs
- ColorKeyFrameCollection.cs
- CutCopyPasteHelper.cs
- CssClassPropertyAttribute.cs
- RelationshipManager.cs
- AspNetCompatibilityRequirementsAttribute.cs
- BufferedReadStream.cs
- GenericTypeParameterBuilder.cs
- NotSupportedException.cs
- CounterSample.cs
- ReadOnlyHierarchicalDataSource.cs
- TreeViewCancelEvent.cs
- ITextView.cs
- Point3D.cs
- StylusPointProperties.cs
- HttpContext.cs
- XmlDocumentType.cs
- TextTreeDeleteContentUndoUnit.cs
- AmbientLight.cs
- ManagementException.cs
- CodeCatchClause.cs
- AssemblyUtil.cs
- SystemFonts.cs
- XmlEncoding.cs
- SystemUnicastIPAddressInformation.cs
- SqlMethods.cs
- ActiveXSite.cs
- InlineObject.cs
- NativeWindow.cs
- WindowsRichEditRange.cs
- IntSecurity.cs
- ThreadSafeList.cs
- ToolTip.cs
- HashRepartitionStream.cs
- ToolStripManager.cs
- RichTextBox.cs
- SchemaImporterExtensionElement.cs
- RowCache.cs
- UserControlAutomationPeer.cs
- XmlUtilWriter.cs
- ThreadStateException.cs
- GeneralTransform.cs
- SQLSingleStorage.cs
- ContextMenuAutomationPeer.cs
- ReachPageContentSerializerAsync.cs
- WinFormsUtils.cs
- ListViewItemSelectionChangedEvent.cs
- ThicknessAnimation.cs
- DataControlImageButton.cs
- mediaeventargs.cs
- UriTemplatePathSegment.cs
- RSAOAEPKeyExchangeFormatter.cs
- DeobfuscatingStream.cs
- RenderDataDrawingContext.cs
- TextEditorParagraphs.cs
- MultiBinding.cs
- Sql8ConformanceChecker.cs
- TraceUtility.cs
- BitmapMetadata.cs
- AutomationProperties.cs
- Cursors.cs
- MetaModel.cs