小编blu*_*blu的帖子

C#图遍历

该算法在遍历图中的节点方面做得很好.

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)

我可以用它来查找图中的目标节点.工作清单在处理工作清单时将项目列出(或弹出).找到目标后,如何返回节点的完整路径?

更新 我试图弄清楚如何反转根路径.在根节点上调用该方法,之后,子节点可能有两个父节点,因此它不像在每个节点上调用父属性并遍历备份那么简单.

该方法的目标是找到路径,而不是迭代所有节点,或检查节点是否存在.

c# traversal graph

10
推荐指数
1
解决办法
9644
查看次数

WCF和Kerberos身份验证

我已经关注了许多msdn文章和codeplex指南,但无法让WCF使用Kerberos身份验证和委派,并希望得到一些帮助.

建立

我在远程计算机上的IIS网站上有WCF服务

  • Windows 2003 R2上的IIS 6.0 - SP 2
  • 已添加机器的SPN(http/myserver && http/myserver:8080)
  • 已为IIS应用程序池创建AD帐户
  • AD帐户具有设置,允许委派(对于Kerberos),设置为true

我在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)

wcf kerberos wcf-security

9
推荐指数
2
解决办法
3万
查看次数

这个Prototype的端口是否正确?

我们的代码将在用户闲置一段时间后运行.(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)

javascript jquery prototypejs

8
推荐指数
1
解决办法
5943
查看次数

我可以手动导航Rails中的turbolink吗?

我有一个带有行的html表和一个jQuery处理程序.
点击事件调用window.location.href会导致整页刷新.

我可以以某种方式手动调用turbolinks来获取页面吗?我应该使用PJAX吗?

谢谢

ruby-on-rails pjax turbolinks

8
推荐指数
1
解决办法
2034
查看次数

为什么 Jest 在这个 Node 测试中没有完成异步操作?

我有以下简单的测试设置:

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 中更高级别的其他调用者可以很好地解析查询并继续执行其他语句。

我试过了:

  1. --detectOpenHandles标志,但它不显示我什么。
  2. fetchData2如果是此处描述的问题,则进行期望通过
  3. donearg传递给test. 它确实存在,但调用它并不能修复警告。
  4. 向它抛出 try/catch 块

感谢您提供的任何帮助,让这一切变得快乐。

事物的版本:

  • 节点 v11.1.0
  • “开玩笑”:“^23.6.0”
  • "knex": …

node.js knex.js jestjs

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

TabControl上下文菜单

在Windows窗体应用程序中,我在TabControl上设置ContextMenuStrip属性.

  1. 如何告诉用户单击当前选中的选项卡以外的选项卡?
  2. 如何限制上下文菜单仅在单击带有标签的顶部Tab部分时显示,而不是在选项卡的其他位置显示?

c# tabcontrol contextmenu winforms

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

C#代码生成

我正在为项目创建一个小类生成器.我一直在阅读有关CodeDOM的内容,因此创建类的语义似乎不是一个问题,但我不确定如何最好地将这一代集成到开发和部署过程中.

  1. 我该如何触发类的创建?我已经读过它应该是构建过程的一部分,我应该怎么做?

  2. 应该在哪里创建课程?我读到不应该手动编辑文件,也不要检查源代码控制.我是否应该担心这一点,只是将类生成到与生成器引擎相同的目录中?

c# build-process code-generation

7
推荐指数
2
解决办法
1089
查看次数

ASP.NET MVC和JQuery动态表单内容

我想用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)?

c# asp.net-mvc jquery

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

实体框架动态Where子句

我有一个查询:

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)

c# generics entity-framework

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

C#Windows窗体TreeView在LabelEdit之后排序

在树中编辑节点的标签后,我尝试求助节点将更新的项目放在正确的位置.我通过在AfterLabelEdit事件处理程序中调用.Sort来执行此操作,这会导致无限循环.

更改标签后,如何在树视图中求助节点?

c# sorting treeview winforms

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