internal Baml2006ReaderInternal( Stream stream, Baml2006SchemaContext baml2006SchemaContext, Baml2006ReaderSettings baml2006ReaderSettings, object root) : base(stream, baml2006SchemaContext, baml2006ReaderSettings, root) { }
public Baml2006Reader(Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } var schemaContext = new Baml2006SchemaContext(null); var settings = new Baml2006ReaderSettings(); Initialize(stream, schemaContext, settings); }
private ResourceDictionary LoadDictionary(Assembly assembly, string assemblyName, string resourceName, bool isTraceEnabled) { ResourceDictionary dictionary = null; // Create the resource manager that will load the byte array ResourceManager rm = new ResourceManager(assemblyName + ".g", assembly); resourceName = resourceName + ".baml"; // Load the resource stream Stream stream = null; try { stream = rm.GetStream(resourceName, CultureInfo.CurrentUICulture); } // There is no ResourceManager.HasManifest in order to detect this case before an exception is thrown. // Likewise, there is no way to know if loading a resource will fail prior to loading it. // So, the exceptions must be caught. stream will continue to be null and handled accordingly later. #pragma warning disable 6502 catch (MissingManifestResourceException) { // No usable resources in the assembly } #if !DEBUG catch (InvalidOperationException) { // Object not stored correctly } #endif #pragma warning restore 6502 if (stream != null) { Baml2006ReaderSettings settings = new Baml2006ReaderSettings(); settings.OwnsStream = true; settings.LocalAssembly = assembly; Baml2006Reader bamlReader = new Baml2006Reader(stream, new Baml2006SchemaContext(settings.LocalAssembly), settings); System.Xaml.XamlObjectWriterSettings owSettings = XamlReader.CreateObjectWriterSettingsForBaml(); if (assembly != null) { owSettings.AccessLevel = XamlAccessLevel.AssemblyAccessTo(assembly); } System.Xaml.XamlObjectWriter writer = new System.Xaml.XamlObjectWriter(bamlReader.SchemaContext, owSettings); if (owSettings.AccessLevel != null) { XamlLoadPermission loadPermission = new XamlLoadPermission(owSettings.AccessLevel); loadPermission.Assert(); try { System.Xaml.XamlServices.Transform(bamlReader, writer); } finally { CodeAccessPermission.RevertAssert(); } } else { System.Xaml.XamlServices.Transform(bamlReader, writer); } dictionary = (ResourceDictionary)writer.Result; if (isTraceEnabled && (dictionary != null)) { EventTrace.EventProvider.TraceEvent(EventTrace.Event.WClientResourceBamlAssembly, EventTrace.Keyword.KeywordXamlBaml, EventTrace.Level.Verbose, assemblyName); } } return dictionary; }
// Token: 0x0600103E RID: 4158 RVA: 0x0004137C File Offset: 0x0003F57C internal override object CreateTypeConverterMarkupExtension(XamlMember property, TypeConverter converter, object propertyValue, Baml2006ReaderSettings settings) { if (FrameworkAppContextSwitches.AppendLocalAssemblyVersionForSourceUri && property.DeclaringType.UnderlyingType == typeof(ResourceDictionary) && property.Name.Equals("Source")) { return(new SourceUriTypeConverterMarkupExtension(converter, propertyValue, settings.LocalAssembly)); } return(base.CreateTypeConverterMarkupExtension(property, converter, propertyValue, settings)); }
// Token: 0x0600103B RID: 4155 RVA: 0x0004135C File Offset: 0x0003F55C internal Baml2006ReaderInternal(Stream stream, Baml2006SchemaContext schemaContext, Baml2006ReaderSettings settings) : base(stream, schemaContext, settings) { }
// Token: 0x0600106D RID: 4205 RVA: 0x0004171B File Offset: 0x0003F91B public Baml2006ReaderSettings(Baml2006ReaderSettings settings) : base(settings) { this.OwnsStream = settings.OwnsStream; this.IsBamlFragment = settings.IsBamlFragment; }
public Baml2006ReaderSettings(Baml2006ReaderSettings settings) : base(settings) { OwnsStream = settings.OwnsStream; IsBamlFragment = settings.IsBamlFragment; }
internal Baml2006Reader(Stream stream, Baml2006SchemaContext schemaContext, Baml2006ReaderSettings settings) { if (stream == null) { throw new ArgumentNullException("stream"); } if (schemaContext == null) { throw new ArgumentNullException("schemaContext"); } Initialize(stream, schemaContext, settings ?? new Baml2006ReaderSettings()); }
public Baml2006Reader(Stream stream, XamlReaderSettings xamlReaderSettings) { if (stream == null) { throw new ArgumentNullException("stream"); } if (xamlReaderSettings == null) { throw new ArgumentNullException("xamlReaderSettings"); } Baml2006SchemaContext schemaContext; if (xamlReaderSettings.ValuesMustBeString) { schemaContext = new Baml2006SchemaContext(xamlReaderSettings.LocalAssembly, System.Windows.Markup.XamlReader.XamlV3SharedSchemaContext); } else { schemaContext = new Baml2006SchemaContext(xamlReaderSettings.LocalAssembly); } var settings = new Baml2006ReaderSettings(xamlReaderSettings); Initialize(stream, schemaContext, settings); }
private void Initialize(Stream stream, Baml2006SchemaContext schemaContext, Baml2006ReaderSettings settings) { schemaContext.Settings = settings; _settings = settings; _context = new Baml2006ReaderContext(schemaContext); _xamlMainNodeQueue = new XamlNodeQueue(schemaContext); _xamlNodesReader = _xamlMainNodeQueue.Reader; _xamlNodesWriter = _xamlMainNodeQueue.Writer; _lookingForAKeyOnAMarkupExtensionInADictionaryDepth = -1; _isBinaryProvider = !settings.ValuesMustBeString; // Since the reader owns the stream and is responsible for its lifetime // it can safely hand out shared streams. if (_settings.OwnsStream) { stream = new SharedStream(stream); } _binaryReader = new BamlBinaryReader(stream); _context.TemplateStartDepth = -1; if (!_settings.IsBamlFragment) { Process_Header(); } }
internal Baml2006Reader( Stream stream, Baml2006SchemaContext baml2006SchemaContext, Baml2006ReaderSettings baml2006ReaderSettings, object root) : this(stream, baml2006SchemaContext, baml2006ReaderSettings) { _root = root; }
internal static Baml2006ReaderSettings CreateBamlReaderSettings() { Baml2006ReaderSettings brSettings = new Baml2006ReaderSettings(); brSettings.IgnoreUidsOnPropertyElements = true; return brSettings; }
private void SetDeferrableContent(DeferrableContent deferrableContent) { Debug.Assert(deferrableContent.Stream != null); Debug.Assert(deferrableContent.SchemaContext != null); Debug.Assert(deferrableContent.ObjectWriterFactory != null); Debug.Assert(deferrableContent.ServiceProvider != null); Debug.Assert(deferrableContent.RootObject != null); Baml2006ReaderSettings settings = new Baml2006ReaderSettings(deferrableContent.SchemaContext.Settings); settings.IsBamlFragment = true; settings.OwnsStream = true; settings.BaseUri = null; // Base URI can only be set on the root object, not on deferred content. Baml2006Reader reader = new Baml2006Reader(deferrableContent.Stream, deferrableContent.SchemaContext, settings); _objectWriterFactory = deferrableContent.ObjectWriterFactory; _objectWriterSettings = deferrableContent.ObjectWriterParentSettings; _deferredLocationList = new List<KeyRecord>(); _rootElement = deferrableContent.RootObject; IList<KeyRecord> keys = reader.ReadKeys(); // If we already have the Source set then we can ignore // this deferable content section if (_source == null) { if (_reader == null) { _reader = reader; _xamlLoadPermission = deferrableContent.LoadPermission; SetKeys(keys, deferrableContent.ServiceProvider); } else { throw new InvalidOperationException(SR.Get(SRID.ResourceDictionaryDuplicateDeferredContent)); } } else if (keys.Count > 0) { throw new InvalidOperationException(SR.Get(SRID.ResourceDictionaryDeferredContentFailure)); } }