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
- Descriptor.cs
- WebResourceUtil.cs
- FlowDocumentReaderAutomationPeer.cs
- HtmlInputCheckBox.cs
- BindingWorker.cs
- OracleRowUpdatedEventArgs.cs
- GacUtil.cs
- Helper.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- OperationResponse.cs
- FormatException.cs
- LinkTarget.cs
- EventData.cs
- QilNode.cs
- AssemblyCacheEntry.cs
- WebControlParameterProxy.cs
- WorkflowDataContext.cs
- MenuItem.cs
- CodeSnippetExpression.cs
- ShaderEffect.cs
- PointLight.cs
- LocalClientSecuritySettings.cs
- FileLevelControlBuilderAttribute.cs
- XmlDataCollection.cs
- AspNetCacheProfileAttribute.cs
- ExceptionHelpers.cs
- EventManager.cs
- System.Data_BID.cs
- Glyph.cs
- SearchExpression.cs
- COM2TypeInfoProcessor.cs
- WebControlsSection.cs
- MultilineStringConverter.cs
- PersonalizationState.cs
- InProcStateClientManager.cs
- View.cs
- SqlDependencyUtils.cs
- PropertyValueUIItem.cs
- DesignerActionItem.cs
- MetadataSource.cs
- SqlMethodCallConverter.cs
- TaskCanceledException.cs
- ReadingWritingEntityEventArgs.cs
- DataGridHelper.cs
- SurrogateDataContract.cs
- ToolStripContentPanel.cs
- ISAPIRuntime.cs
- CodeSubDirectoriesCollection.cs
- SamlAdvice.cs
- CryptoApi.cs
- storagemappingitemcollection.viewdictionary.cs
- ProfileSettings.cs
- Authorization.cs
- BamlReader.cs
- Adorner.cs
- WizardStepBase.cs
- CodeDirectionExpression.cs
- assertwrapper.cs
- LinkedDataMemberFieldEditor.cs
- SessionSwitchEventArgs.cs
- IdentityHolder.cs
- BindingCompleteEventArgs.cs
- LinqMaximalSubtreeNominator.cs
- DisplayNameAttribute.cs
- HttpVersion.cs
- WebPartExportVerb.cs
- GridViewAutomationPeer.cs
- ColumnHeader.cs
- TabletCollection.cs
- Vector3DAnimationUsingKeyFrames.cs
- AlignmentYValidation.cs
- MasterPageBuildProvider.cs
- SpellerError.cs
- UnsafeNativeMethods.cs
- BitmapEffectRenderDataResource.cs
- XmlDataFileEditor.cs
- Visual3DCollection.cs
- DataSourceXmlSerializer.cs
- XmlSchemaDocumentation.cs
- Errors.cs
- PointF.cs
- StorageMappingItemLoader.cs
- NullableFloatSumAggregationOperator.cs
- BinaryCommonClasses.cs
- ActivityInterfaces.cs
- AssemblyBuilder.cs
- DataServiceQueryContinuation.cs
- AuthorizationRuleCollection.cs
- InternalConfigSettingsFactory.cs
- CoreSwitches.cs
- BamlRecordHelper.cs
- EnumConverter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AsyncCodeActivityContext.cs
- TagPrefixCollection.cs
- ValidationRule.cs
- EditBehavior.cs
- GPStream.cs
- AbstractDataSvcMapFileLoader.cs
- TextServicesCompartment.cs