如何在.net中将动画gif拆分为其组成部分?
具体来说,我想将它们加载到内存中的Image(s)(System.Drawing.Image)中。
======================
根据SLaks的回答,我现在有了这个
public static IEnumerable<Bitmap> GetImages(Stream stream)
{
using (var gifImage = Image.FromStream(stream))
{
//gets the GUID
var dimension = new FrameDimension(gifImage.FrameDimensionsList[0]);
//total frames in the animation
var frameCount = gifImage.GetFrameCount(dimension);
for (var index = 0; index < frameCount; index++)
{
//find the frame
gifImage.SelectActiveFrame(dimension, index);
//return a copy of it
yield return (Bitmap) gifImage.Clone();
}
}
}
Run Code Online (Sandbox Code Playgroud) 如果您有一个需要测试的方法,它会获取SearchResults列表
public virtual void ProcessResults(IList<SearchResult> list)
{
//Code to tests here
}
Run Code Online (Sandbox Code Playgroud)
你如何模拟SearchResult列表?
注意:不允许使用低级注入框架(例如TypeMock).
我们正在努力寻找一种优雅的解决方案,用于报告从我们基础架构中的系统生成的异常,这些异常比查看电子邮件或检查日志文件更容易操作.跨服务总线的发布/订阅模型可以非常巧妙地解决这个问题.服务将发布错误/事件,并且子程序员可以使用简单模式匹配过滤这些消息.
我们一直在调查NServiceBus项目并想知道它是否能达到我们的要求,看看PubSub示例(http://docs.particular.net/samples/pubsub/),我们注意到它没有解决以下两种情况:
我们已设法达到这些要求,但我们不确定配置是否正确.以下是我们的解决方案:
所有发布者共享相同的订阅存储配置(DBSubscriptionStorage),这是一个共享数据库,如文档http://docs.particular.net/nservicebus/messaging/publish-subscribe/的订阅存储部分所述.
所有发布者/订阅者都配置为使用nservicebus网站上的文档中描述的分发者.
我们想知道这是否是NServiceBus发布/订阅模型的正确实现,或者是否有其他解决方案可以实现我们的目标?
使用此方法Assembly.Load(Byte(),Byte()) http://msdn.microsoft.com/en-us/library/twt16z2x.aspx 可以提供pdb文件的字节表示.
鉴于已经加载了程序集,可以在事后提供pdb数据.
编辑:我正在以编程方式谈论.即没有调试器
http://msdn.microsoft.com/en-us/library/435f1dw2.aspx
public class Base
{
public string Field;
}
public class Child : Base
{
public new string Field;
}
[TestFixture]
public class TestClass
{
[Test]
public void DetectNew()
{
var fieldInfo = typeof(Child).GetField("Field");
//How do I tell fieldInfo has a new modifier?
Debug.WriteLine(fieldInfo);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我知道方法和属性我可以检查"MethodBase.IsHideBySig".为什么FieldInfo不存在类似的属性?
我试图使用密码保护密钥文件(pfx)以编程方式签署程序集.但是,当我尝试使用StrongNameKeyPair时,我得到以下异常.
无法获取StrongNameKeyPair的公钥.在System.Reflection.StrongNameKeyPair.ComputePublicKey()处于System.Reflection.StrongNameKeyPair.get_PublicKey()
因此c#公开了typeof关键字,它为我们提供了对Type的强类型访问
var type = typeof(MyClass);
Run Code Online (Sandbox Code Playgroud)
但它并没有让我们访问methodof或fieldof.这实际上看起来像这样.
var method = methodof(MyClass.MyMethod);
var getProperty = methodof(MyClass.get_MyProperty)
var setProperty = methodof(MyClass.set_MyProperty)
var field = fieldof(MyClass.myField);
Run Code Online (Sandbox Code Playgroud)
是否有其他语言公开此功能?
注意:发布c#反射代码不是此问题的有效答案
AKA为什么这个测试失败了?
[TestFixture]
public class Tests
{
[Test]
public void InnerClassShouldBePublic()
{
Assert.IsTrue(typeof (InnerClass).IsPublic);
}
public class InnerClass
{
}
}
Run Code Online (Sandbox Code Playgroud) 我启用了模拟和Windows身份验证.
<authentication mode="Windows" />
<identity impersonate="true" userName="name" password="passord"/>
Run Code Online (Sandbox Code Playgroud)
但返回经过身份Thread.CurrentPrincipal.Identity.Name验证的用户的名称并WindowsIdentity.GetCurrent()返回模拟身份.
这些身份不应该相同吗?
在这种情况下,代码运行的凭据是什么?
asp.net security impersonation windows-identity current-principal
.net ×8
c# ×4
reflection ×3
asp.net ×1
code-signing ×1
file-format ×1
gif ×1
image ×1
mocking ×1
nservicebus ×1
pkcs#12 ×1
security ×1
strongname ×1
typeof ×1
unit-testing ×1