JavaScriptSerializer将从IEnumerable派生的类型序列化为JavaScript数组.它方便了数组和列表,但在某些情况下,我需要序列化在派生类型中声明的属性(例如,键入IGrouping).这里有一些示例代码:
var items = new[] { "aaabbb", "abcd", "bdsasd", "bsdqw" };
IGrouping<char, string> data = items.GroupBy(i => i[0]).First();
var serializer = new JavaScriptSerializer();
var serialized = serializer.Serialize(data);
// serialized == "[\"aaabbb\",\"abcd\"]"
// doesn't contain definition for IGrouping.Key property
Run Code Online (Sandbox Code Playgroud)
这个问题有什么简单的解决方案吗?
我有一个类型类Atomic,它定义了将某些类型转换为包装器值(/ Atom)的函数.我想定义一个QuickCheck属性,该属性指出:"对于所有实例Atomic,可以安全地存储和检索任何值".该属性如下所示:
class Atomic a where
toAtom :: a -> Atom
fromAtom :: Atom -> Maybe a
prop_AtomIdentity x = fromAtom (toAtom x) == Just x
Run Code Online (Sandbox Code Playgroud)
但是,如果我只是尝试通过QuickCheck运行该属性,它只需选择一个实例(Bool)并对其进行测试.我目前正在通过为测试列表中的每个受支持的原子类型定义类型签名来解决这个问题,但这很冗长且容易出错:
containerTests =
[ run (prop_AtomIdentity :: Bool -> Bool)
, run (prop_AtomIdentity :: Word8 -> Bool)
, run (prop_AtomIdentity :: String -> Bool)
{- etc -} ]
Run Code Online (Sandbox Code Playgroud)
我正在尝试定义一个自动执行此操作的函数:
forallAtoms :: (Atomic a, Show a) => (a -> Bool) -> [TestOptions -> IO TestResult]
forallAtoms x = …Run Code Online (Sandbox Code Playgroud) 我一直在使用waveInGetDevCaps来获取waveIn设备的名称,但WAVEINCAPS结构只支持31个字符加上null,这意味着在我的计算机上,我得到的设备名称被截断:
Microphone / Line In (SigmaTel
Microphone Array (SigmaTel High,
Run Code Online (Sandbox Code Playgroud)
我确信必须有一种方法来获取完整的设备名称,但有谁知道那是什么?
我试图解释细节,这很容易理解.
我想根据月份和年份的差异列出月份和年份.
我正在实施基于开始月份的搜索功能,包括年份和年末.所以!
开始选择 - 01(月)-2009(年)
结束选择10(月)-2009(年)
我想从MySQL得到的是:
Month Year
JAN 2009
FEB 2009
MAR 2009
APR 2009
MAY 2009
JUN 2009
JUL 2009
AUG 2009
SEP 2009
OCT 2009
Run Code Online (Sandbox Code Playgroud) 哪些工具最适合衡量网络服务的性能?
获得总传输数据,总POST,每秒请求数,每个请求的时间,传输速率和每个请求的响应时间的报告会很好.
我已经开始使用Mercurial来控制我的Drupal项目源文件(我既是VCS又是Mercurial新手).但是,数据库仍然使用日期.sql.gz文件的目录进行"版本控制".
我想要的是在我的存储库中的某个地方有一个数据库转储文件,当数据库发生更改时会被当前转储覆盖,并在我想要回滚到另一个版本时导入到数据库中.
我是手动完成的,但它确实有效.但我真正喜欢的是在每次提交/更新时自动执行转储/加载的事情.我真的更喜欢它会挂钩到Mercurial而不是外部像makefile那样首先转储数据库然后提交,因为我喜欢使用TortoiseHg的工具,而且我不想让另一个脚本运行.
现在,似乎mysql .... < dumpfile.sql在update钩子上的东西将是每次更新后加载数据库转储的简单方法.但是自动倾销怎么样?
有一个类似的问题关于SVN的预提交钩子,并且接受的答案是它可能是一个坏主意.它适用于Mercurial吗?也许另一个钩子(prechangegroup?)会起作用?
编辑:
我应该指出,我自己在我的本地机器上使用它.它不应该扩展到单个用户之外.
我打算将GitHub与Git Extensions一起使用,并可能与FogBugz(可选)集成.
查看下载页面并阅读一些相当技术性的半相关问题,我想看看你认为在Windows 7上安装会更好,因为我想与Visual Studio 2008集成(认为这将通过GitExtensions).
两者之间的直接答案(msysGit或Cygwin?)会很棒,但是对于开始使用GitHub的任何更简单的建议都会受到欢迎,或者如果我确实完全错过了这个标记(这有关系吗?).将从Subversion导入.
extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
__THROW;
Run Code Online (Sandbox Code Playgroud)
我在Linux机器上的/usr/include/netinet/ether.h中找到了上面的函数定义.
有人可以在const(关键字),addr(标识符)和最后__THROW前面解释双下划线的含义.
我无法弄清楚为什么会这样.
我有一个正常的连接方法:
public void Connect()
{
_client.BeginConnect(new AsyncCallback(this.ConnectCallback), _client);
}
public void ConnectCallback(IAsyncResult asyncResult)
{
ServerClient callback = null;
callback = (ServerClient)asyncResult.AsyncState;
callback.EndConnect(asyncResult);
Program.IMMainForm.BeginInvoke(new frmMain.ConnectionEstablishedNotification(Program.IMMainForm.ConnectionEstablished));
Run Code Online (Sandbox Code Playgroud)
这完全没问题.我几乎复制并粘贴了我的Send方法的代码:
public void Send(string code, string data)
{
_client.BeginSendToServer((code + data), new AsyncCallback(this.SendCallback), _client);
}
public void SendCallback(IAsyncResult asyncResult)
{
ServerClient callback = null;
callback = (ServerClient)asyncResult.AsyncState;
callback.EndConnect(asyncResult);
}
Run Code Online (Sandbox Code Playgroud)
但是,它在EndConnect行上出错,并带有错误
"Async End使用来自不同Begin方法的IAsyncResult调用.参数名称:结果"
话
mscorlib.dll中发生了'System.ArgumentException'类型的第一次机会异常
我不是100%处于异步的东西,所以有什么明显的我做错了吗?
说,如果我有
如何异步运行批处理文件中的所有这些,即无需等待以前的程序停止?
asp.net ×1
asynchronous ×1
audio ×1
batch-file ×1
benchmarking ×1
c ×1
cmd ×1
cygwin ×1
date ×1
github ×1
haskell ×1
json ×1
mercurial ×1
msysgit ×1
mysql ×1
php ×1
quickcheck ×1
syntax ×1
testing ×1
wcf ×1
web-services ×1
winapi ×1
windows-7 ×1