该算法在遍历图中的节点方面做得很好.
Dictionary<Node, bool> visited = new Dictionary<Node, bool>();
Queue<Node> worklist = new Queue<Node>();
visited.Add(this, false);
worklist.Enqueue(this);
while (worklist.Count != 0)
{
Node node = worklist.Dequeue();
foreach (Node neighbor in node.Neighbors)
{
if (!visited.ContainsKey(neighbor))
{
visited.Add(neighbor, false);
worklist.Enqueue(neighbor);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以用它来查找图中的目标节点.工作清单在处理工作清单时将项目列出(或弹出).找到目标后,如何返回节点的完整路径?
更新 我试图弄清楚如何反转根路径.在根节点上调用该方法,之后,子节点可能有两个父节点,因此它不像在每个节点上调用父属性并遍历备份那么简单.
该方法的目标是找到路径,而不是迭代所有节点,或检查节点是否存在.
我已经关注了许多msdn文章和codeplex指南,但无法让WCF使用Kerberos身份验证和委派,并希望得到一些帮助.
建立
我在远程计算机上的IIS网站上有WCF服务
我在8080上使用Brian Booth的调试站点,该站点传递了Kerberos委派的所有要求.调试IIS站点已关闭匿名身份验证,并启用了集成Windows身份验证.
我已将这些设置镜像到托管WCF服务的站点.
Web服务 - Web配置(原始)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WsHttpBindingConfig">
<security>
<message negotiateServiceCredential="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Service">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="WsHttpBindingConfig"
contract="IService">
<identity>
<servicePrincipalName value="http/myserver" />
<dns value="" />
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceAuthorization
impersonateCallerForAllOperations="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
Web服务 - Web方法
[OperationBehavior(Impersonation …Run Code Online (Sandbox Code Playgroud) 我们的代码将在用户闲置一段时间后运行.(doStuff重置倒计时)
Prototype中的现有代码:
Event.observe(window, 'mousemove', function() { doStuff(); });
Event.observe(window, 'scroll', function() { doStuff(); });
Event.observe(window, 'click', function() { doStuff(); });
Event.observe(window, 'focus', function() { doStuff(); });
Event.observe(window, 'blur', function() { doStuff(); });
Event.observe(window, 'keypress', function() { doStuff(); });
Event.observe(document, 'mousemove', function() { doStuff(); });
Event.observe(document, 'scroll', function() { doStuff(); });
Event.observe(document, 'click', function() { doStuff(); });
Event.observe(document, 'focus', function() { doStuff(); });
Event.observe(document, 'blur', function() { doStuff(); });
Event.observe(document, 'keypress', function() { doStuff(); });
Run Code Online (Sandbox Code Playgroud)
我想用这个JQuery替换它:
$(document).ready(function() {
$(document).bind("mousemove scroll click …Run Code Online (Sandbox Code Playgroud) 我有一个带有行的html表和一个jQuery处理程序.
点击事件调用window.location.href会导致整页刷新.
我可以以某种方式手动调用turbolinks来获取页面吗?我应该使用PJAX吗?
谢谢
我有以下简单的测试设置:
test('what did I do to deserve this', async () => {
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
})
async function fetchData () {
return "peanut butter"
}
async function fetchData2 () {
return knex.select('name').from('foos')
}
Run Code Online (Sandbox Code Playgroud)
使用fetchData玩笑的话愉快地结束。
但是当我使用fetchData2它时会抱怨这个:
测试运行完成后,Jest 一秒钟都没有退出。
这通常意味着在您的测试中没有停止异步操作。考虑运行 Jest
--detectOpenHandles来解决这个问题。
数据变量确实具有 db 查询的结果,API 中更高级别的其他调用者可以很好地解析查询并继续执行其他语句。
我试过了:
--detectOpenHandles标志,但它不显示我什么。fetchData2如果是此处描述的问题,则进行期望通过donearg传递给test. 它确实存在,但调用它并不能修复警告。感谢您提供的任何帮助,让这一切变得快乐。
事物的版本:
在Windows窗体应用程序中,我在TabControl上设置ContextMenuStrip属性.
我正在为项目创建一个小类生成器.我一直在阅读有关CodeDOM的内容,因此创建类的语义似乎不是一个问题,但我不确定如何最好地将这一代集成到开发和部署过程中.
我该如何触发类的创建?我已经读过它应该是构建过程的一部分,我应该怎么做?
应该在哪里创建课程?我读到不应该手动编辑文件,也不要检查源代码控制.我是否应该担心这一点,只是将类生成到与生成器引擎相同的目录中?
我想用JQuery动态地将字段添加到ASP.NET MVC表单.
例:
<script language="javascript" type="text/javascript">
var widgets;
$(document).ready(function() {
widgets = 0;
AddWidget();
});
function AddWidget() {
$('#widgets').append("<li><input type='text' name='widget" + widgets + "'/></li>");
widgets++;
}
</script>
<ul id="widgets">
</ul>
Run Code Online (Sandbox Code Playgroud)
这有效,但我打算手动迭代控制器中的表单值:
[AcceptVerbs("Post")]
public ActionResult AddWidget(FormCollection form)
{
foreach (string s in form)
{
string t = form[s];
}
return RedirectToAction("ActionName");
}
Run Code Online (Sandbox Code Playgroud)
但是当我将用户发送回Controller中的Get Action时,我会发现我必须使用输入的值设置FormData,然后使用<%scripting迭代添加小部件.
在当前版本中有什么最好的方法(我相信5)?
我有一个查询:
var function = GetSomeExpression();
using (FooModel context = new FooModel())
{
var bar = context.Bar.Where(function);
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个可以在上下文中针对不同实体执行Where的泛型方法.目标不是必须做context.Bar.Where,context.Car.Where,Context.Far.Where等.
一些无法做到的事情,但说明了目标是:
var q = context.GetObjectContext(T).Where(queryFunction);
Run Code Online (Sandbox Code Playgroud)
我已经研究过使用Relfection并且可以获取Where方法,但是不知道如何针对在委托中传递的上下文执行它.我也看过DynamicMethod,但做整个IL事情并不喜欢吸引人.
到目前为止我所拥有的:
private List<T> GetResults<T>(Expression<Func<T, bool>> queryFunction)
{
// note: first() is for prototype, should compare param type
MethodInfo whereMethod = typeof(Queryable).GetMethods()
.Where(m => m.Name == "Where")
.First().MakeGenericMethod(typeof(T));
// invoke the method and return the results
List<T> result = whereMethod.Invoke(
// have the method info
// have the expression
// can reference the context
);
throw new …Run Code Online (Sandbox Code Playgroud) 在树中编辑节点的标签后,我尝试求助节点将更新的项目放在正确的位置.我通过在AfterLabelEdit事件处理程序中调用.Sort来执行此操作,这会导致无限循环.
更改标签后,如何在树视图中求助节点?
c# ×6
jquery ×2
winforms ×2
asp.net-mvc ×1
contextmenu ×1
generics ×1
graph ×1
javascript ×1
jestjs ×1
kerberos ×1
knex.js ×1
node.js ×1
pjax ×1
prototypejs ×1
sorting ×1
tabcontrol ×1
traversal ×1
treeview ×1
turbolinks ×1
wcf ×1
wcf-security ×1