我正在尝试在 .net 中设置基本日志记录到 .net 中的 Windows 事件日志System.Diagnostics.EventLog,但我没有看到任何实际写入日志的事件。考虑以下代码:
// Elsewhere in the class
private static readonly string EventLogName = "LogName";
private static readonly string EventLogSource = "AppName";
// In the only function that does something
if (!EventLog.Exists(EventLogName))
{
EventLog.CreateEventSource(EventLogSource, EventLogName);
return;
}
else
{
Trace.TraceInformation("Attempting log");
// This doesn't write anything
EventLog.WriteEntry(EventLogSource,
"StaticWriteEntry",
EventLogEntryType.Error);
// Neither does this
using (var log = new EventLog())
{
log.Log = EventLogName;
log.Source = EventLogSource;
log.WriteEntry("WriteEntry?", EventLogEntryType.Error);
}
}
return;
Run Code Online (Sandbox Code Playgroud)
根据 MSDN 示例,我第一次创建日志并退出应用程序。当然,此日志创建最终将进入设置。后续运行尝试将消息记录到创建的事件日志中。 …
我有一个接受字符串的函数,即:
void log_out(char *);
Run Code Online (Sandbox Code Playgroud)
在调用它时,我需要动态创建一个格式化的字符串,如:
int i = 1;
log_out("some text %d", i);
Run Code Online (Sandbox Code Playgroud)
我如何在ANSI C中执行此操作?
只是,因为sprintf()返回一个int,这意味着我必须编写至少3个命令,如:
char *s;
sprintf(s, "%d\t%d", ix, iy);
log_out(s);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以缩短这个吗?
我理解之间的细微差异require,load以及autoload在Ruby中,但我的问题是,你怎么知道该用哪一个呢?
除了能够load在匿名模块中"包装"a之外,require似乎更受欢迎.
但是然后autoload允许你懒惰加载文件 - 听起来很棒但我不确定你获得了什么require
一种方法比另一种方法更受欢迎吗?是否存在一种方法脱颖而出的情况?
我的应用程序从我的网站上读取(html)文件,我想使用Google Analytics跟踪对该文件的访问.由于GA Javascript在读取文件时未执行,因此不会对其进行跟踪.有没有办法直接从代码触发GA,或者从.NET应用程序执行Javascript而不添加一堆依赖项?
首先,我是一个Rails新手.我可以在Ruby中拥有自己的东西,但Rails对我来说是一个完全不同的故事.我喜欢Rails为我提供的开发速度,但我似乎无法与现有文档保持和平.
对于我目前为止的所有表单,我使用了form_for,其中包含我需要创建的模型的实例(例如,提交新书).我真的希望能够写出如下内容:
<% form(:action => "whatever") %>
<% text_field ... %>
<% file_field ... %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
从我在线阅读的文章中,我了解到这就是在Rails <2.0中完成工作的方式.无论如何在Rails> 2.0中做到这一点,还是等同于它?你能发一个片段吗?
我正在使用Spring Web Flow 2.0开发一个项目.
我试图对以决策状态开始的流进行单元测试.决策状态检查对象上的对象的值conversationScope.我无法弄清楚如何conversationScope在单元测试中插入一个值.
我试过了:
getConversationScope().put("someName", value);
MockExternalContext context = new MockExternalContext();
startFlow(context);
Run Code Online (Sandbox Code Playgroud)
但是,似乎当我调用startFlow(context)该值时会被清除.
我也尝试过:
MockExternalContext context = new MockExternalContext();
setCurrentState("someDecisionState");
resumeFlow(context)
Run Code Online (Sandbox Code Playgroud)
但是测试失败并且错误地告诉我,我无法从决策状态恢复,只能从视图状态恢复.
有谁知道如何插入模拟值,conversationScope以便我可以测试这些情况?
我想知道什么是最好的方法 - 或者如果标准库有一个简单的方法 - 将域名和路径中的Unicode字符转换为等效的ASCII URL,使用域编码为IDNA和路径% -encoded,根据RFC 3986.
我从用户那里得到一个UTF-8的URL.因此,如果他们输入http://?.ws/?我'http://\xe2\x9e\xa1.ws/\xe2\x99\xa5'的Python.我想要的是ASCII版本:'http://xn--hgi.ws/%E2%99%A5'.
我现在所做的是通过正则表达式将URL拆分为多个部分,然后手动对域进行IDNA编码,并使用不同的urllib.quote()调用单独编码路径和查询字符串.
# url is UTF-8 here, eg: url = u'http://?.ws/?'.encode('utf-8')
match = re.match(r'([a-z]{3,5})://(.+\.[a-z0-9]{1,6})'
r'(:\d{1,5})?(/.*?)(\?.*)?$', url, flags=re.I)
if not match:
raise BadURLException(url)
protocol, domain, port, path, query = match.groups()
try:
domain = unicode(domain, 'utf-8')
except UnicodeDecodeError:
return '' # bad UTF-8 chars in domain
domain = domain.encode('idna')
if port is None:
port = ''
path = urllib.quote(path)
if query is None:
query = '' …Run Code Online (Sandbox Code Playgroud) 其实我会说:是的,Getter是主人.因此,任何调用Getter的人都不负责释放内存.或者更确切地说,对象本身是所有者,但Getter充当实例变量的传递机制给其他人.这是对的,还是我弄错了?
我的WinForm C#应用程序上的MouseEvents有问题.
我想在我的应用程序上点击所有鼠标,但我不想在每个子组件中都放置一个监听器,也不要使用Windows鼠标钩子.
在Flash上我可以在Stage上放置一个监听器来获取电影上的所有MouseEvent.
C#上有这样的东西吗?全局MouseListener?
编辑:
我从IMessageFilter ans使用Application.AddMessageFilter创建了这个类.
public class GlobalMouseHandler : IMessageFilter{
private const int WM_LBUTTONDOWN = 0x201;
public bool PreFilterMessage(ref Message m){
if (m.Msg == WM_LBUTTONDOWN) {
// Do stuffs
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并将此代码放在需要监听全局点击的控件上:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);
Run Code Online (Sandbox Code Playgroud) 所以,
SELECT * FROM table WHERE col LIKE '%'
Run Code Online (Sandbox Code Playgroud)
将返回一切.是否有查询的通配符
SELECT * FROM table WHERE col = '*'
Run Code Online (Sandbox Code Playgroud)
显然*不起作用,我只是把它放在那里,以表明我想要一个通配符.我选择的列包含1到12之间的整数,我希望能够选择具有特定数字的所有记录,或者选择带有通配符的所有记录.
谢谢,