我有一些代码将XNode返回给我,如下所示:
<File>
<Component>Main</Component>
<Path>C:\Main\</Path>
<FileName>main.txt</FileName>
</File>
Run Code Online (Sandbox Code Playgroud)
我需要一些能够提取Path值的C#代码(例如C:\ Main).我知道如果我使用XML节点,我可以这样做:
String filePath = xmlNode["Path"].InnerText;
Run Code Online (Sandbox Code Playgroud)
有人知道XNode的等价物是什么吗?任何帮助深表感谢!
我试图从XML文件中读取一些数据并遇到一些麻烦,我的XML如下:
<xml version="1.0" encoding="UTF-8"?>
<EmailSettings>
<recipient>test@test.com</recipient>
<sender>test2@test.com</sender>
<subject>Sales Query</subject>
<description>email body message</description>
</EmailSettings>
Run Code Online (Sandbox Code Playgroud)
我试图将这些值作为字符串读入我的Java程序,到目前为止我编写了这段代码:
private static Document getDocument (String filename){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringComments(true);
factory.setIgnoringElementContentWhitespace(true);
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(new InputSource(filename));
}
catch (Exception e){
System.out.println("Error reading configuration file:");
System.out.println(e.getMessage());
}
return null;
}
Document doc = getDocument(configFileName);
Element config = doc.getDocumentElement();
Run Code Online (Sandbox Code Playgroud)
虽然我正在努力阅读实际的字符串值.
我已经编写了一个Windows窗体应用程序,现在我想为它编写一些单元测试(不完全是测试驱动的开发,因为我在开发后编写测试但是迟到的时候从未好过!)我的问题是这样的应用程序考虑到几乎所有的方法和事件都是私有的,你如何编写单元测试呢?我听说过NUnit Forms,但是我听到了它的优点和缺点,而且该项目暂时没有真正的发展,所以它看起来已经废弃了.此外,如果我为用户通过点击/按下按钮触发的所有事件编写单元测试用例,或者我必须为所有人编写单元测试用例,那么该项目已经进行了足够的单元测试方法并找出一种方法来测试我的私有方法?
编辑:我的业务逻辑与我的表示逻辑分离,我的业务逻辑公开了1或2个公共方法,因此表单可以访问它们,但是业务逻辑中的所有私有方法呢?
有没有人知道它是否可能,如果是这样,如何使用Visual Studio 2008链接到调试版本中的一组DLL和使用Visual Studio 2008在C#项目上的版本构建中的另一组DLL?
我正在研究由Win32异常引起的应用程序中的一些崩溃,并且我已经缩小它必须在线程池中发生,它正在EventLog.EntryWrittenEventHandler处理我的应用程序中的事件处理程序.我这样设置:
// Create the event log monitor
eventLog.Log = "Application";
eventLog.EnableRaisingEvents = true;
eventLog.EntryWritten += new EntryWrittenEventHandler(EventLogMonitor);
Run Code Online (Sandbox Code Playgroud)
EventLogMonitor是我的事件的处理程序.我想知道是否有任何想法,我在哪里可以找出导致此异常的原因.似乎要监听ThreadPoolWaitOrTimerCallback正在建立的事件,其上没有我的任何代码,如果发生异常,我就无法看到如何处理这个问题.任何帮助真的很感激!!
这是WinDBG中!clrstack的输出:
0:008> !clrstack
OS Thread Id: 0x106c (8)
ESP EIP
049df1c8 7756f871 [HelperMethodFrame: 049df1c8]
049df26c 73ce6fa0 System.Diagnostics.EventLog.get_OldestEntryNumber()
049df27c 73bf24ed System.Diagnostics.EventLog.CompletionCallback(System.Object)
049df2c4 73bf0fe4 System.Diagnostics.EventLog.StaticCompletionCallback(System.Object, Boolean)
049df2f4 744fc3b8 System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context(System.Object, Boolean)
049df300 744fc373 System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context_f(System.Object)
049df304 7400027f System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
049df31c 744fc477 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean)
049df4ac 74991b5c [GCFrame: 049df4ac]
Run Code Online (Sandbox Code Playgroud)
如果它有帮助,我的应用程序只是检查写入事件日志的每个条目的事件ID,如果它匹配某个ID的一个,那么我记录它.崩溃很少发生安静,异常是System.ComponentModel.Win32异常,消息"访问被拒绝".听起来这可能是一个权限问题,但为什么它会在一段时间内正常工作然后突然崩溃.
我已经尝试了两个不同的组件来在Windows窗体应用程序(c#)中集成pdf文件.上面提到的组件是PDFSharp和Sloppycode webBrowserEx.现在,它们都工作正常,但我无法通过textBox搜索和突出显示用户定义的编程全文.
任何人都可以给我一些建议来实现我的目的吗?
提前致谢.
我正在处理一些静态分析缺陷,并且导致我出现问题的是这个缺陷.
SOCKADDR_IN m_stLclAddr;
Run Code Online (Sandbox Code Playgroud)
缺陷是说我没有初始化以下内容:
我对熟悉WinSock API并不是很熟悉,但我做了一些研究,我只是想知道以下代码行是否会使用默认值初始化m_stLclAddr?
m_stLclAddr = { 0 };
Run Code Online (Sandbox Code Playgroud) 我有这行代码:
this.Path = pathLookUpLocation.GetValue(RegLookupKey, null).ToString();
Run Code Online (Sandbox Code Playgroud)
当我在我的代码上运行静态分析工具(Coverity)时,我在这里得到一个FORWARD_NULL,说我在这里取消引用null.我无法理解这意味着什么以及如何修复它?
this.Path是一个字符串,pathLookUpLocation是一个RegistryKey,RegLookupKey是一个字符串.
我编写了一个工具来收集工具用户指定的时间窗口内的日志文件.到目前为止,我通过在日志文件上使用File.GetLastWriteTime方法来建立日志文件集合,将其与用户输入和收集的时间进行比较,并根据这些比较的结果进行收集.这是一个小代码片段:
DateTime logFileEnd = File.GetLastWriteTime(matchingActiveLogFile);
Run Code Online (Sandbox Code Playgroud)
但是我注意到我的工具没有收集我认为它应该完成的一些日志文件.看来这个方法返回的DateTime已经过时了(文件中最近的日志记录比这个日期时间的值更多).
当我查看相关文件的"修改日期"时,它也"过时",文件中的最新日志记录比"修改日期"更新.
我如何才能获得准确的"GetLastWriteTime"或"修改日期"值?
我收到错误使用泛型类型'System.Collections.Generic.Dictionary <TKey,TValue>'需要使用以下代码行的2个类型参数:
this._logfileDict = new Dictionary();
Run Code Online (Sandbox Code Playgroud)
我只是想在我的代码中有一个明确的_logfileDict没有条目,所以这就是为什么我给它分配一个新的Dictionary,它将是空的,但是如果有人知道一些代码,我可以用它来清空_logfileDict.它只是一个字典声明如下:
private Dictionary<string, LogFile> _logfileDict;
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢!
c# ×8
xml ×2
.net ×1
build ×1
c++ ×1
dictionary ×1
dll ×1
exception ×1
file-io ×1
java ×1
linq ×1
pdf ×1
registrykey ×1
threadpool ×1
unit-testing ×1
winforms ×1
winsock ×1