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
- RewritingSimplifier.cs
- IIS7WorkerRequest.cs
- NavigationPropertyEmitter.cs
- PropertyMapper.cs
- OlePropertyStructs.cs
- log.cs
- _ListenerResponseStream.cs
- COM2TypeInfoProcessor.cs
- WebPartConnectionCollection.cs
- GenerateTemporaryTargetAssembly.cs
- TreeViewItemAutomationPeer.cs
- RuleEngine.cs
- StreamInfo.cs
- ListViewItemSelectionChangedEvent.cs
- OracleInternalConnection.cs
- TransformerConfigurationWizardBase.cs
- HtmlInputCheckBox.cs
- UInt32Converter.cs
- RelationshipConverter.cs
- EdgeProfileValidation.cs
- DefaultEventAttribute.cs
- MarkedHighlightComponent.cs
- COM2FontConverter.cs
- PersistenceMetadataNamespace.cs
- BulletChrome.cs
- CheckedListBox.cs
- ConfigurationElement.cs
- HatchBrush.cs
- SecurityKeyIdentifier.cs
- OdbcConnectionString.cs
- ChannelToken.cs
- SHA1Cng.cs
- PrivateFontCollection.cs
- Convert.cs
- TabletDeviceInfo.cs
- BitmapEffectInput.cs
- AttachmentCollection.cs
- TagPrefixCollection.cs
- SoapEnumAttribute.cs
- LifetimeMonitor.cs
- WebZone.cs
- StylusTip.cs
- TreeNodeClickEventArgs.cs
- PingReply.cs
- DeclarativeCatalogPart.cs
- TrackingMemoryStream.cs
- SoapFault.cs
- ObjectIDGenerator.cs
- SapiAttributeParser.cs
- QuotedPairReader.cs
- ToolStripManager.cs
- EnglishPluralizationService.cs
- HideDisabledControlAdapter.cs
- _UriTypeConverter.cs
- SecureUICommand.cs
- WebPartCancelEventArgs.cs
- QuaternionRotation3D.cs
- BindingFormattingDialog.cs
- OverlappedAsyncResult.cs
- FrameworkElement.cs
- TreeViewImageKeyConverter.cs
- SamlAuthorizationDecisionStatement.cs
- Lookup.cs
- WorkflowTransactionOptions.cs
- SynchronizedDispatch.cs
- SymmetricCryptoHandle.cs
- KeyBinding.cs
- COMException.cs
- CodeArrayCreateExpression.cs
- RichTextBoxAutomationPeer.cs
- ExpressionSelection.cs
- ToolStripContentPanelRenderEventArgs.cs
- _AutoWebProxyScriptEngine.cs
- ResourcePermissionBaseEntry.cs
- SqlProviderManifest.cs
- AssemblyHash.cs
- EllipseGeometry.cs
- DocumentSequence.cs
- CompiledQuery.cs
- DBSqlParserColumn.cs
- SearchForVirtualItemEventArgs.cs
- NewArrayExpression.cs
- AsyncCompletedEventArgs.cs
- LayoutTable.cs
- ErasingStroke.cs
- WindowsRegion.cs
- GroupAggregateExpr.cs
- NamespaceQuery.cs
- SiteMapHierarchicalDataSourceView.cs
- RSACryptoServiceProvider.cs
- MulticastOption.cs
- FileSystemWatcher.cs
- ServicePoint.cs
- PerformanceCounter.cs
- Interlocked.cs
- ConcurrentStack.cs
- ActivityMetadata.cs
- HashRepartitionStream.cs
- VScrollProperties.cs
- PerformanceCounterManager.cs