小编Dea*_*ane的帖子

当相同的XML元素通过不同的XPath匹配两个XSLT模板时,执行哪个模板?为什么?

考虑这个XML:

<people>
  <person>
    <firstName>Deane</firstName>
    <lastName>Barker</lastName>
  </person>
</people>
Run Code Online (Sandbox Code Playgroud)

如果两个XSLT模板通过不同的XPath匹配元素怎么办?我知道如果两个模板上的"匹配"元素是相同的(这应该永远不会发生,我不认为),最后一个模板将会触发.

但是,考虑一下这个XSL:

<xsl:template match="person/firstName">
    Template #1
</xsl:template>

<xsl:template match="firstName">
    Template #2
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

"firstName"元素将匹配这些模板中的任何一个 - 第一个作为"person"的子元素,第二个元素是独立的.

我测试了这个,模板#1执行,而模板#2没有.这背后的运作原理是什么?我能想到三件事:

  1. XPath的特殊性(非常值得怀疑)
  2. XSLT文件中的位置(也值得怀疑)
  3. 模板#1对模板#2的一些先发制人.在执行模板#1期间发生了一些事情,它告诉模板#2不要执行.

xslt

7
推荐指数
1
解决办法
5053
查看次数

可以在管道的早期提前处理和结束请求吗?

我有一个HttpModule,它已将事件处理程序绑定到EndRequest.

有没有办法在事件处理程序中处理请求?这意味着,我不只是想运行代码并保持请求移动 - 我想阻止它在其轨道上死亡,返回200状态代码,并在一天内调用它,而不要求它继续下一步管道.

asp.net pipeline httpmodule

6
推荐指数
1
解决办法
1877
查看次数

如何从SqlConnection对象中"分离"SqlDataReader?

我有一个方法("GetDataReader,"让我们称之为)返回一个SqlDataReader.它位于Singleton DataFactory类中,用于维护与数据库的持久连接.

这样做的问题是,在返回之后,DataReader仍然"连接"到我的DataFactory中的Connection对象.所以,我必须确保调用GetDataReader的代码然后在返回的DataReader上调用Close(),否则,它将"锁定"Connection:

已经有一个与此命令关联的打开DataReader,必须先关闭它.

在从GetDataReader发回DataReader之前,如何"分离"DataReader?要么是,要么克隆它并发回克隆?我不想让调用代码总是明确地关闭它.

这里必须有一个最好的做法.

更新:

谢谢各位的意见.最重要的是,我需要失去使用DataReaders并切换到DataTables的习惯.它们更易于管理.

另外,感谢有关连接池的说明.我知道它,但只是没有把两个和两个放在一起,并意识到我正在重新发明轮子.

c# sqlconnection sqldatareader

6
推荐指数
1
解决办法
6048
查看次数

你如何在C#中进行动态脚本评估?

C#中动态代码评估的状态是什么?对于我正在开发的应用程序的一个非常高级的功能,我希望用户能够输入一行应该评估为布尔值的C#代码.

就像是:

DateTime.Now.Hours > 12 && DateTime.Now.Hours < 14
Run Code Online (Sandbox Code Playgroud)

我想动态评估此字符串并将结果捕获为布尔值.

我试过了Microsoft.JScript.Eval.JScriptEvaluate,这很有效,但它在技术上已被弃用,它只适用于Javascript(不理想,但可行).另外,我希望能够将对象推送到脚本引擎中,以便可以在评估中使用它们.

我发现提到的一些资源动态编译程序集,但这比我想要处理的更多开销.

那么,C#中动态脚本评估的状态是什么?有可能,还是我运气不好?

c# reflection dynamic

6
推荐指数
1
解决办法
4445
查看次数

在解析片段时,我可以阻止AngleSharp外推完整的HTML文档吗?

无论如何都要让AngleSharp 在解析片段时创建完整的HTML文档.例如,如果我解析:

<title>The Title</title>
Run Code Online (Sandbox Code Playgroud)

我得到一个完整的HTML文档DocumentElement.OuterHtml:

<html><head><title>The Title</title></head><body></body></html>
Run Code Online (Sandbox Code Playgroud)

如果我解析:

<p>The Paragraph</p>
Run Code Online (Sandbox Code Playgroud)

我得到另一个完整的HTML文档:

<html><head></head><body><p>Hey</p></body></html>
Run Code Online (Sandbox Code Playgroud)

请注意,AngleSharp足够聪明,可以知道我的片段应该去哪里.在一种情况下,它将它放在HEAD标签中,而在另一种情况下,它将它放在BODY标签中.

这很聪明,但如果我只想让片段退出,我不知道从哪里得到它.所以,我不能只是调用Body.InnerHtml因为根据我解析的HTML,我的片段可能在其中Head.InnerHtml.

有没有办法让AngleSharp不能创建一个完整的文档,还是有其他方法可以在解析后将我的孤立片段退出?

anglesharp

6
推荐指数
2
解决办法
649
查看次数

如何在运行时将ASP.Net控件移动到Web窗体上的不同位置?

是否有一种"移动"控件的可接受方式.

我的客户希望在页面上的几个不同位置之一放置一定量的标记(表示一些视觉元素).位置不同,我不能影响CSS的变化(通过浮动它或其他东西).

我考虑将控件置于多个位置,将Visible设置为"false",然后在该特定页面所需的位置显示该控件.

但是,这个控件的代码并不简单 - 例如,有几个模板部分.不得不在多个地方欺骗它会变得笨拙.此外,出于同样的原因,我不想严格地从代码隐藏中使用此控件.

所以,我想把它放在Web表单的一个地方,根据我想要的地方移动它.我可以将占位符放在不同的位置,将控件放在一个位置,然后将其移除并添加到正确的位置?我怀疑这会奏效.

有人有更好的主意吗?这是最好的做法吗?

asp.net controls

5
推荐指数
1
解决办法
2万
查看次数

如何在"try ... catch"块中抛出一个未处理的异常?

我今天在一些代码中有一个例外:"[某些例外]未得到处理."

但是,这段代码显然位于"try/catch"结构的"try"块中.

我在这里错过了什么?

更新:这是C#

更新:哦,忘了.事实证明,错误的具体机制是我是个白痴.对此没有任何解决方法.

c# error-handling

5
推荐指数
2
解决办法
4427
查看次数

PHP之类的弱类型语言的接口有什么意义?

我从来没有弄明白这一点.如果您的语言没有进行类型检查,那么界面会为您带来哪些好处?

php interface

5
推荐指数
1
解决办法
535
查看次数

如何从C#连接到任何数据库?

是否有可能在C#中构建与SQL Server或MySQL无关的数据库无关代码,具体取决于连接字符串?

我想我正在寻找能够在数据库服务器上抛出SQL的东西,并返回一组非常简单的行/列.这个数据库可能是...... SQL,MySQL,Access,Filemaker等等.似乎所有数据库都有自己的驱动程序和对象库.SqlConnection与MySqlConnection等

我知道OBDC和OdbcConnection,它理论上会做我想要的,但我不想一直在服务器上创建ODBC连接.

我在这里要求太多吗?

c# mysql sql-server database-connection

5
推荐指数
2
解决办法
1168
查看次数

是否可以在一次操作中获取Redis的所有值?

说我添加两个键:

SET husband Bob
SET wife Alice
Run Code Online (Sandbox Code Playgroud)

然后将这些添加到一组:

SADD family husband wife
Run Code Online (Sandbox Code Playgroud)

我可以获得这个集合的SMEMBERS family,它将返回:

1) "wife"
2) "husband"
Run Code Online (Sandbox Code Playgroud)

我真正想要的是价值观:

1) "Alice"
2) "Bob"
Run Code Online (Sandbox Code Playgroud)

这可能在一次操作中吗?从本质上讲,我想管道SMEMBERSMGET.

redis

5
推荐指数
1
解决办法
3083
查看次数