/// <summary>Converts the specified stream to a new <see cref="T:System.Windows.DeferrableContent" /> object.</summary> /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context. </param> /// <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> to use as the current culture. </param> /// <param name="value">The source stream to convert.</param> /// <returns>A new <see cref="T:System.Windows.DeferrableContent" /> object.</returns> /// <exception cref="T:System.ArgumentNullException"> /// <paramref name="context" /> is <see langword="null" />.</exception> /// <exception cref="T:System.InvalidOperationException"> /// <paramref name="context" /> is not able to provide the necessary XAML schema context for BAML.-or- /// <see cref="T:System.Windows.Markup.IProvideValueTarget" /> service interpretation of <paramref name="context" /> determines that the target object is not a <see cref="T:System.Windows.ResourceDictionary" />.-or- /// <paramref name="value" /> is not a valid byte stream.</exception> // Token: 0x060003AC RID: 940 RVA: 0x0000A73C File Offset: 0x0000893C public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value == null) { return(base.ConvertFrom(context, culture, value)); } if (context == null) { throw new ArgumentNullException("context"); } XamlSchemaContext schemaContext = DeferrableContentConverter.RequireService <IXamlSchemaContextProvider>(context).SchemaContext; Baml2006SchemaContext baml2006SchemaContext = schemaContext as Baml2006SchemaContext; if (baml2006SchemaContext == null) { throw new InvalidOperationException(SR.Get("ExpectedBamlSchemaContext")); } IXamlObjectWriterFactory objectWriterFactory = DeferrableContentConverter.RequireService <IXamlObjectWriterFactory>(context); IProvideValueTarget provideValueTarget = DeferrableContentConverter.RequireService <IProvideValueTarget>(context); IRootObjectProvider rootObjectProvider = DeferrableContentConverter.RequireService <IRootObjectProvider>(context); if (!(provideValueTarget.TargetObject is ResourceDictionary)) { throw new InvalidOperationException(SR.Get("ExpectedResourceDictionaryTarget")); } Stream stream = value as Stream; if (stream == null) { byte[] array = value as byte[]; if (array != null) { stream = new MemoryStream(array); } } if (stream == null) { throw new InvalidOperationException(SR.Get("ExpectedBinaryContent")); } return(new DeferrableContent(stream, baml2006SchemaContext, objectWriterFactory, context, rootObjectProvider.RootObject)); }