private static CreateTextureIssueWorkaround InitializeWorkaround() { try { D3DX11SaveTextureToMemory saveMethod = (D3DX11SaveTextureToMemory)Delegate.CreateDelegate( typeof(D3DX11SaveTextureToMemory), null, typeof(Resource).Assembly.GetType("SharpDX.Direct3D11.D3DX11").GetMethod("SaveTextureToMemory", BindingFlags.Static | BindingFlags.NonPublic)); return((c, t, f) => { Blob buff; saveMethod(c, t, f, out buff, 0); buff.Dispose(); }); } catch { return((c, t, f) => { using (MemoryStream ms = new MemoryStream(32 * 1024)) Resource.ToStream(c, t, f, ms); }); } }