我正在用 AngleSharp 解析文档。我有一个文本节点(NodeName:“#text”),我想在其中插入一些 HTML。我当然可以将 NodeValue 重置为我想要的任何值,但它仍然是一个文本节点,所以所有的括号都被转义了。
如何获取文本节点的字符串值,向其中注入一些 HTML,然后解析 DOM 表示该 HTML 代替原始文本节点?
我有一个 C# 命令行应用程序。如果提供了标准输入,我需要捕获它。如果没有,执行就应该开始。
我尝试过各种组合:
Console.OpenStandardInput()
Console.ReadLine()
Console.In.Peek()
Run Code Online (Sandbox Code Playgroud)
它们全部阻塞,等待输入。这不是我想要的。标准输入应该是可选的。如果未提供,则程序应该在没有它的情况下启动,并且无需等待它。
在我的自定义保存操作中,我遍历表单字段(AdaptedControlResult对象).任何表单字段都是DropList(来自任何来源 - 手动输入的值或项目查找)返回的字符串值为System.Collections.Generic.List`1[System.String]
现在,重要的是要知道,它不会返回实际的List.它返回一个带有该值的文字字符串.
所以,这个电话:
fields.GetEntryByName("MyFieldName").Value
Run Code Online (Sandbox Code Playgroud)
正在返回字符串:System.Collections.Generic.List`1[System.String].不是下拉列表的价值.一个字符串,说它是一个List<string>.
我已经确认表单的HTML正确呈现.我也手动检查了入站HttpContext.Current.Request.Form值...
HttpContext.Current.Request.Form["BGWnjkQqrE6w6sr31IgzrQ.Sections[5].Fields[0].Value"]
Run Code Online (Sandbox Code Playgroud)
这是下拉列表中正确选择的值(Sitecore ID).
因此,数据正确地输出到表单,并且入站Request.Form数据也是正确的.某处,Sitecore决定不将所选值填充到AdaptedControlResult对象中.
另外奇怪的是,对于DropList字段类型,所选值确实出现在Parameters属性中(莫名其妙).我只是检测到并使用它,但它不一致 - 例如,对于文本框字段类型,单词"multiline"出现在那里.
所有其他字段类型工作正常 - 我有几个文本输入字段和一些单选按钮列表.它只是DropList字段.
得到这个的诀窍是什么?
我知道这主要是一种意见,但我很感兴趣,如果你有一个,你的理由是什么.
我是Sharepoint的新手,刚刚开始使用Sharepoint Designer.我很好奇我在Sharepoint设计器中看到的文件系统,它似乎没有出现在其他任何地方.
当我在Sharepoint Designer中打开Sharepoint站点时,我看到所有列表的文件夹以及在其中创建的Web表单 - 我实际上是在查看Windows文件系统吗?或者这些虚拟文件实际上不存在于文件系统中?
换句话说,当我在Sharepoint中创建一个新的List时,做一堆模板文件("AllItems.aspx","DispForm.aspx"等)会被写入某个文件系统吗?如果是的话,在哪里?
我问,因为我搜索了,在实际文件系统的任何地方找不到我在Sharepoint Designer中看到的任何文件.
在Windows环境中通过HTTP访问SVN的最佳实践是什么?
在Linux中,我们一直将SVN连接到Apache,因此我们可以通过HTTP寻址远程存储库.有没有办法将SVN连接到IIS,或者某种方便的方式让您通过HTTP访问Windows机器上的SVN存储库?
是否有可能通过CSS获得一个文本框("输入"带有"type = text")来表现得像textarea?
显然,我可以设置高度和宽度,但是我不能像文本区域一样包裹它,也不能将内容垂直对齐.
我有一种情况,我不能改变页面的HTML,但我可以改变CSS.我的用户想要textareas,他们只有文本框,我希望我可以单独使用CSS.
我尝试了"白色空间"和"垂直对齐"的每个组合.
我在C#对象中有一个递归数据结构.
对象具有"部件"的集合.每个零件还有一个零件集合.等等.结构理论上可以永远嵌套.
object
--> Part
--> Part
--> Part
--> Part
--> Part
--> Part
--> Part
Run Code Online (Sandbox Code Playgroud)
我想得到这个结构中所有部件的数量.所以,所有的分支和叶子.(在上面的例子中共有7个部分.)
有没有办法在不初始化计数器并通过树递归的情况下执行此操作?当然,我可以做到这一点,但它看起来很慢而且有点过分.有更好/更简单的方法吗?
在C#中,是否有任何内置方法来"纠正"其中包含父路径的URL?所以,我想接受这个:
/foo/bar/../baz.html
Run Code Online (Sandbox Code Playgroud)
把它变成......
/foo/baz.html
Run Code Online (Sandbox Code Playgroud)
("bar"目录在路径中被".."否定.)
我试图手动滚动它,但逻辑非常难看,非常快.考虑类似的事情:
/foo1/foo2/../foo3/foo4/foo5/../../bar.html
Run Code Online (Sandbox Code Playgroud)
我向前走的路径是逐段移动URL,然后开始编写新的URL.如果第2段不是"..",我只会在新网址中包含第1段.但是,在上面的例子中,我需要"向前看"并弄清楚我有多少父路径.
我试图使用Path.GetFullPath,它在技术上得到了它的工作,但是,伙计,它很难看.公平警告:你可能想避开这个:
Path.GetFullPath(myUrl).Replace(Path.GetFullPath(@"\"), "").Replace(@"\", "/") + "/";
Run Code Online (Sandbox Code Playgroud)
GetFullPath从"C:\"根返回一个文件系统路径,所以你基本上必须替换它,而不是转换斜杠等.
我最终可能会把它打破(我的丑陋代码在技术上可行),但是我觉得我不能成为第一个尝试这个的人.谷歌没有帮助.
(另一种语言的答案也会有所帮助 - 至少它会显示逻辑.)
有没有办法告诉.Net从命名空间树的根目录搜索命名空间?
假设我有两个完全独立的命名空间:
Apple.Orange.Banana
Orange.Grape.Peach
Run Code Online (Sandbox Code Playgroud)
假设他们来自不同的程序员,每个人中的"橙色"完全是巧合.
如果我在"Apple.Orange.Banana"里面,我试图导入(或引用)"Orange.Grape.Peach".Net的东西,我试图从"Apple.Orange.Banana"中的"Orange"搜索".
我怎么说呢,"从根本看,而不是我现在所处的位置." 这会很棒:
~Orange.Grape.Peach
Run Code Online (Sandbox Code Playgroud)
但是,唉,这不存在.
我知道你们中的一些人会说我应该更好地规划命名空间,但是当我使用来自两个地方的代码时会发生什么,这些代码预定义了我无法改变的命名空间,并且它们如上所述那样冲突了?
我遇到了这个显然并非罕见的问题 -
我在Assembly A中有一个接口.
我正在动态加载程序集B,并尝试将一个对象从程序集A中转换到我的接口中.
它失败了InvalidCastException.
我已经明白了为什么 - 程序集A中的类和程序集B中的类,即使具有相同的名称和相同的代码,也不是相同的东西,不能相互强制转换.
我的问题是:有解决方案吗?有什么方法可以使这两种类型兼容,或者我是否需要在程序集B中复制我的接口并将对象转换为该接口?
我正在使用Assembly.LoadFrom加载程序集B - 是否有不同的方法可以使它们与类型兼容?
我不能成为第一个遇到这个问题的人.我想要做的事情似乎是插件架构相当普遍的任务.
是否有可能通过循环"寻找"?基于某些条件,我想做一个"继续到位",以快进循环.像这样:
for(var thing in things)
{
// Do stuff
if(something)
{
// Move iteration forward until the iteration object ("thing") meets the right condition
while(true)
{
// Move the iteration forward...somehow
[Missing code goes here]
if(thing.Property == somevalue)
{
break;
}
}
}
// Do more stuff on the new value of "thing"
}
Run Code Online (Sandbox Code Playgroud)
我可以使用continue,但我不想回到循环的顶部.我想循环通过枚举器中的对象,然后从我离开的地方继续前进.
我猜这是不可能的.如果没有,那么模仿我想做什么的最佳逻辑是什么.
c# ×5
.net ×1
anglesharp ×1
assemblies ×1
css ×1
executable ×1
html ×1
namespaces ×1
sharepoint ×1
sitecore ×1
stdin ×1
string ×1
svn ×1
url ×1
windows ×1