我正在使用.net 2.0 filewatcher来查看新文件的文件夹.它完美地工作,除非我一次放置超过80个文件.该事件不再触发.好像filewatcher设置为跟踪特定数量的文件.
暂时我已经要求用户不要一次放置超过50个文件,但这似乎有效,但我想修复它,以便可以一次将数百个文件放入文件夹中.
这是我正在使用的代码.这是非常标准的东西,没什么特别的.
FileWatcher = new FileSystemWatcher();
FileWatcher.Path = ConfigurationManager.AppSettings["FolderOfFilesToWatch"];
FileWatcher.NotifyFilter = NotifyFilters.FileName;
FileWatcher.Filter = "*_*_*.*";
FileWatcher.Created += new FileSystemEventHandler(watcher_Created);
FileWatcher.EnableRaisingEvents = true;
static void watcher_Created(object sender, FileSystemEventArgs e)
{
Console.Write(e.Name);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个大量使用regexp的python模板引擎.它使用如下的连接:
re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" )
Run Code Online (Sandbox Code Playgroud)
我可以修改单个子串(regexp1,regexp2等).
是否有任何小而轻的表达式,什么都不匹配,我可以在模板中使用,我不想要任何匹配?不幸的是,有时'+'或'*'被附加到正则表达式原子,因此我不能使用空字符串 - 这将引发"无需重复"错误.
public class StateQueryFilter extends FieldQueryFilter {
// private static final Log LOG = LogFactory.getLog(RecommendedParser.class.getName());
public StateQueryFilter() {
super("state", 5f);
super("city", 5f);
super("notdirectory", 5f);
//LOG.info("Added a state query");
}
}
Run Code Online (Sandbox Code Playgroud)
它报告说:
Constructor call must be the first statement in a constructor
Run Code Online (Sandbox Code Playgroud)
有没有办法让它发挥作用?
我试图找出log4net与依赖注入框架的正确模式和用法.
Log4Net使用ILog接口但需要我调用
LogManager.GetLogger(Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Run Code Online (Sandbox Code Playgroud)
在我需要记录信息的每个类或方法中.这似乎违背了IoC原则并让我使用Log4Net.
我应该以某种方式在某处放置另一层抽象?
此外,我需要记录自定义属性,如当前用户名,如下所示:
log4net.ThreadContext.Properties["userName"] = ApplicationCache.CurrentUserName;
Run Code Online (Sandbox Code Playgroud)
我如何封装它,以便我不必记住每次都这样做并仍然保持当前记录的方法.我应该做这样的事情还是我完全错过了标记?
public static class Logger
{
public static void LogException(Type declaringType, string message, Exception ex)
{
log4net.ThreadContext.Properties["userName"] = ApplicationCache.CurrentUserName;
ILog log = LogManager.GetLogger(declaringType);
log.Error(message, ex);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将滚动条添加到JList(使用自定义数据模型).添加JScrollPane实际上隐藏了JList,而不是添加滚动条.当我使用滚动条运行代码时,JList不可见,我看不到数据.
playlistField = new JList(playlist); // playlist is a data model
playlistField.setLocation(32, 220-36);
playlistField.setSize(350,120);
playlistField.setVisible(true);
this.add(playlistField);
listScrollPane = new JScrollPane(playlistField, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
Run Code Online (Sandbox Code Playgroud)
注释掉listScrollPane = ...行会使JList再次可见,并且按预期工作.
我错过了什么?
在java中,方法'Class.getMethods()'返回接收器类及其超类中所有方法的数组.是否有类似Class.getMethods()这样的方法只给我们类的方法,没有那些从其超类中得到的方法?
我正在编写一个实用程序,它反映在两个对象图上,并返回一个值来指示图表是否相同.它让我思考,是否有一种普遍接受的模式来编写递归算法,该算法从递归中的某些位置返回值?
我的解决方案可能会使用ref参数,看起来像这样的伪代码:
public static bool IsChanged(T current, T previous)
{
bool isChanged = false;
CheckChanged(current, previous, ref isChanged);
return isChanged ;
}
private static void CheckChanged(T current, T previous, ref isChanged)
{
//perform recursion
if (graphIsChanged)
isChanged = true;
else
CheckChanged(current, previous, ref isChanged);
}
Run Code Online (Sandbox Code Playgroud)
有更好/更清洁/更有效的方式吗?这种功能有一般模式吗?
如何使用PHP正则表达式匹配所有内容?我试过了:/ [.\ r \n]*/,但它不起作用.有任何想法吗?谢谢.
这是我为PHP类解析电子邮件的方法:
public function getHeader($headerName) {
preg_match('/[\r\n]' . $headerName . '[:][ ](.+)[\r\n][^ \t]/Uis', "\n" . ltrim($this->originalMessage), $matches); return preg_replace('/[\r\n]*/', '', $matches[1]);
}
Run Code Online (Sandbox Code Playgroud) 我有一个现有的方法(或一般的功能),我需要增加其他功能,但我不想在代码中的其他地方使用该方法.例:
int foo::bar(int x)
{
// a whole lot of code here
return 2 * x + 4;
}
Run Code Online (Sandbox Code Playgroud)
广泛用于代码库.现在我需要将4转换为参数,但任何已经调用foo :: bar的代码仍然应该接收它所期望的内容.我应该扩展并重命名旧方法并将其包装成新的方法
int foo::extended_bar(int x, int y)
{
// ...
return 2 * x + y;
}
int foo::bar(int x)
{
return extended_bar(x,4);
}
Run Code Online (Sandbox Code Playgroud)
或者我应该在头文件中声明一个默认参数,如
int bar(int x, int y=4);
Run Code Online (Sandbox Code Playgroud)
并只是扩展功能
int foo::bar(int x, int y)
{
// ...
return 2 * x + y;
}
Run Code Online (Sandbox Code Playgroud)
每种变体有哪些优缺点?
我试图通过C#访问UserControl代码隐藏中的资源字典,但我收效甚微.
合并词典:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/BiometricDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
嵌入字典:
<UserControl.Resources>
<BitmapImage x:Key="imageDefault">/Resources/Images/default_thumb.png</BitmapImage>
<BitmapImage x:Key="imageDisconnected">/Resources/Images/disconnect_thumb.png</BitmapImage>
<BitmapImage x:Key="imageFailed">/Resources/Images/failed_thumb.png</BitmapImage>
<BitmapImage x:Key="imageSuccess">/Resources/Images/success_thumb.png</BitmapImage>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
代码背后:
var resourceDictionary = new ResourceDictionary();
resourceDictionary.Source = new Uri("/Resources/BiometricDictionary.xaml", UriKind.Relative);
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有的例子和有用的提示,但很快就会出现.现在,成功将是加载字典的能力.有什么建议?