using System; using System.IO; using System.Resources; using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Content { [PercentageComplete(80)] [Developer("GinieDP")] [TestState(TestStateAttribute.TestState.Untested)] public class ResourceContentManager : ContentManager { private readonly ResourceManager resource; public ResourceContentManager(IServiceProvider servicesProvider, ResourceManager resource) : base(servicesProvider) { if (resource == null) { throw new ArgumentNullException("resource"); } this.resource = resource; } protected override Stream OpenStream(string assetName) { #if WINDOWSMETRO // TODO: find replacement and encapsulate in platform addins!! object obj = null; #else object obj = resource.GetObject(assetName); #endif if (obj == null) { throw new ContentLoadException("Resource not found"); } if ((obj is byte[]) == false) { throw new ContentLoadException("Resource is not in binary format"); } return new MemoryStream(obj as byte[]); } } }