我正在使用现有的XML文档,其结构(部分)如下:
<Group>
<Entry>
<Name> Bob </Name>
<ID> 1 </ID>
</Entry>
<Entry>
<Name> Larry </Name>
</Entry>
</Group>
Run Code Online (Sandbox Code Playgroud)
我正在使用LINQ to XML来查询XDocument以检索所有这些条目,如下所示:
var items = from g in xDocument.Root.Descendants("Group").Elements("Entry")
select new
{
name = (string)g.element("Name").Value,
id = g.Elements("ID").Count() > 0 ? (string)g.Element("ID").Value : "none"
};
Run Code Online (Sandbox Code Playgroud)
"ID"元素并不总是存在,因此我对此的解决方案是上面的Count()爵士乐.但我想知道是否有人有更好的方法来做到这一点.我仍然对这些新东西感到满意,我怀疑可能有更好的方法来做到这一点,而不是我现在正在做的事情.
有没有更好/更优选的方式来做我想要的?
我意识到在正常情况下这将是完全不好的做法,但这仅适用于需要从条形码扫描仪(模拟键盘)输入的测试应用程序.问题是我需要在扫描时启动一些脚本,所以我需要窗口在我单击脚本运行它之后直接重新获得焦点.我尝试过使用Activate(),BringToFront(),Focus()以及一些Win32调用,如SetForegroundWindow(),Setcapture()和SetActiveWindow()...但是我能得到的最好的就是让任务栏项目开始闪烁告诉我它想要有焦点,但有些东西正在阻止它.顺便说一下,我在XP SP2上运行它并使用.NET 2.0.
这可能吗?
编辑:为了澄清,我通过在资源管理器中双击它们来运行脚本.所以我需要它从探险家和测试应用程序窃取焦点.
我们想要枚举 .NET 资源文件(resx 文件)中的所有字符串。我们希望生成一个包含所有这些键值对的 JavaScript 对象。我们现在使用如下代码对卫星程序集执行此操作(这是 VB.NET,但任何示例代码都可以):
Dim rm As ResourceManager
rm = New ResourceManager([resource name], [your assembly])
Dim Rs As ResourceSet
Rs = rm.GetResourceSet(Thread.CurrentThread.CurrentCulture, True, True)
For Each Kvp As DictionaryEntry In Rs
[Write out Kvp.Key and Kvp.Value]
Next
Run Code Online (Sandbox Code Playgroud)
然而,遗憾的是,我们还没有找到对 .resx 文件执行此操作的方法。我们如何枚举 resx 文件中的所有本地化字符串?
更新:
根据 Dennis Myren 的评论和此处的想法,我构建了一个 ResXResourceManager。现在,我可以像处理嵌入式资源一样处理 .resx 文件。这是代码。请注意,微软将所需的构造函数设为私有,因此我使用反射来访问它。使用此功能时您需要充分信任。
Imports System.Globalization
Imports System.Reflection
Imports System.Resources
Imports System.Windows.Forms
Public Class ResXResourceManager
Inherits ResourceManager
Public Sub New(ByVal BaseName As String, ByVal ResourceDir As String)
Me.New(BaseName, ResourceDir, GetType(ResXResourceSet)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试为PDO语句的结果编写一个迭代器,但我找不到任何重绕到第一行的方法.我想避免调用fetchAll和存储所有结果数据的开销.
// first loop works fine
foreach($statement as $result) {
// do something with result
}
// but subsequent loops don't
foreach($statement as $result) {
// never called
}
Run Code Online (Sandbox Code Playgroud)
有没有办法重置声明或寻找第一行?
我是git的新手.我想知道是否支持以下场景,如果是这样的话(即用于设置和更新的git命令).
存储库可以从三个不同的地方获得:'local','mirror'和'github'."镜像"镜像"本地"完全和"github"镜像"本地"除了"受版权保护"的目录.
谢谢.
使用C或C++,在将文件解密到磁盘后 - 如果应用程序崩溃或系统关闭且无法正常清理,我如何保证将其删除?在Windows和Linux上使用C或C++?
我想改变这个:
<a href='foo'>
<div> Moo </div>
</a>
Run Code Online (Sandbox Code Playgroud)
符合标准(你不应该在内联元素中有块元素).将javascript连接到div仅用于导航似乎是一个黑客并降低了可访问性.在这种情况下,我的要求是我的固定维度链接上的两组边框,因此上面的不兼容代码在应用样式后完美地工作.
另外," a { display:block; }"是否是绕过验证的合法方式?
是否有一些优雅的方法将空选项添加到与LinqDataSource绑定的DropDownList中?
我在SQL Server Reporting Services(SSRS)中有一个报告,我想安排自动作为电子邮件运行.我希望将报告附加为Excel文件.
根据微软的概述,这应该是可能的.
报告发送.SQL Server Reporting Services支持按需(拉)和基于事件(推送)的报告传递.用户可以使用基于Web的格式或电子邮件查看报告.
但是,我无法找到有关如何实际执行此操作的任何信息.有谁知道应该使用什么工具或哪里有一个好的教程?
谢谢!
阻止用户调整用WPF编写的应用程序的顶级窗口的最佳方法是什么?
.net ×2
c# ×2
linq ×2
asp.net ×1
c ×1
c++ ×1
css ×1
encryption ×1
filesystems ×1
git ×1
github ×1
html ×1
iterator ×1
javascript ×1
linq-to-xml ×1
localization ×1
pdo ×1
php ×1
reporting ×1
resize ×1
resx ×1
size ×1
sql-server ×1
w3c ×1
winforms ×1
wpf ×1