小编Jud*_*ngo的帖子

用于生成层次结构的C#算法

我有一个看起来像这样的文本文件:

{ Id = 1, ParentId = 0, Position = 0, Title = "root" }
{ Id = 2, ParentId = 1, Position = 0, Title = "child 1" }
{ Id = 3, ParentId = 1, Position = 1, Title = "child 2" }
{ Id = 4, ParentId = 1, Position = 2, Title = "child 3" }
{ Id = 5, ParentId = 4, Position = 0, Title = "grandchild 1" }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种通用的C#算法,它将从中创建一个对象层次结构.如果您愿意,可以使用"层次结构"功能将此数据转换为对象层次结构.

有任何想法吗?

编辑我已经将文件解析为.NET对象:

class …
Run Code Online (Sandbox Code Playgroud)

c# algorithm hierarchy hierarchical-data

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

采用文件上载和附加参数的WebAPI方法

我想上传一个文件并随文件一起发送一些额外的信息,比方说一个字符串foo和一个int栏.

如何编写接收文件上载,字符串和int的ASP.NET WebAPI控制器方法?

我的JavaScript:

var fileInput = document.querySelector("#filePicker");
var formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("foo", "hello world!");
formData.append("bar", 42);

var options = {
   url: "/api/foo/upload",
   data: formData,
   processData: false // Prevents JQuery from transforming the data into a query string
};
$.ajax(options);
Run Code Online (Sandbox Code Playgroud)

我的WebAPI控制器可以像这样访问文件:

public async Task<HttpResponseMessage> Upload()
{
    var streamProvider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(streamProvider);
    var fileStream = await streamProvider.Contents[0].ReadAsStreamAsync();
}
Run Code Online (Sandbox Code Playgroud)

但我不清楚如何获得我的字符串和我的int.我想我可以说streamProvider.Content [1],或者其他什么,但这感觉非常讨厌.

什么是正确的方法©编写接受文件上传,字符串和int的WebAPI操作?

asp.net asp.net-mvc file-upload asp.net-web-api

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

Java卡单元测试

我想在某种模拟/模拟环境中运行我的Java Card应用程序,以便能够对它们运行JUnit(或任何其他单元测试框架)测试.有谁知道这样的工具?我更喜欢一些开源项目.

unit-testing javacard

14
推荐指数
2
解决办法
3903
查看次数

如何使用System.Media.SoundPlayer异步播放声音文件?

这是一个看似简单的问题:

在Windows窗体中异步播放嵌入式.wav资源文件的正确方法是什么?

尝试#1:

var player = new SoundPlayer();
player.Stream = Resources.ResourceManager.GetStream("mySound");
player.Play(); // Note that Play is asynchronous
Run Code Online (Sandbox Code Playgroud)
  • 好:不阻止UI线程
  • 错误:SoundPlayer和嵌入的资源流不会立即处理.

尝试#2:

using (var audioMemory = Resources.ResourceManager.GetStream("mySound"))
{
    using (var player = new SoundPlayer(audioMemory))
    {
        player.Play();
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 好:未阻止UI线程,立即处理SoundPlayer和音频内存流.
  • 坏:竞争条件!Play()是异步的,如果音频内存在播放完成之前被释放...繁荣!抛出运行时异常.

尝试#3:

using (var audioMemory = Resources.ResourceManager.GetStream("mySound"))
{
    using (var player = new SoundPlayer(audioMemory))
    {
        player.PlaySync();
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 好:播放器和音频流立即处理.
  • 错误:PlaySync会阻止UI线程

尝试#4:

ThreadPool.QueueUserWorkItem(ignoredState =>
  {
    using (var audioMemory = Resources.ResourceManager.GetStream("mySound"))
    {
        using (var player = new SoundPlayer(audioMemory))
        {
            player.PlaySync();
        }
    }
  });
Run Code Online (Sandbox Code Playgroud)
  • 好:UI不会冻结,播放器和内存流会立即处理掉. …

c# audio winforms

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

使用C#格式化Twitter文本(TweetText)

有没有更好的方法从Twitter格式化文本链接超链接,用户名和主题标签?我所拥有的是工作,但我知道这可以做得更好.我对替代技术感兴趣.我将其设置为ASP.NET MVC的HTML Helper.

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;

namespace Acme.Mvc.Extensions
{

    public static class MvcExtensions
    {
        const string ScreenNamePattern = @"@([A-Za-z0-9\-_&;]+)";
        const string HashTagPattern = @"#([A-Za-z0-9\-_&;]+)";
        const string HyperLinkPattern = @"(http://\S+)\s?";

        public static string TweetText(this HtmlHelper helper, string text)
        {
            return FormatTweetText(text);
        }

        public static string FormatTweetText(string text)
        {
            string result = text;

            if (result.Contains("http://"))
            {
                var links = new List<string>();
                foreach (Match match in Regex.Matches(result, HyperLinkPattern))
                {
                    var url = match.Groups[1].Value;
                    if (!links.Contains(url))
                    { …
Run Code Online (Sandbox Code Playgroud)

c# twitter asp.net-mvc

12
推荐指数
1
解决办法
4223
查看次数

WPF UserControls - 在UserControl内的按钮上设置.Command属性

我有一个UserControl包含一个按钮和一些其他控件:

<UserControl>
  <StackPanel>
     <Button x:Name="button" />
     ...
  </StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

当我创建该控件的新实例时,我想要获取Button的Command属性:

<my:GreatUserControl TheButton.Command="{Binding SomeCommandHere}">
</my:GreatUserControl>
Run Code Online (Sandbox Code Playgroud)

当然,"TheButton.Command"的东西不起作用.

所以我的问题是:使用XAML,如何在用户控件中设置按钮的.Command属性?

data-binding wpf user-controls command

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

iPhone开发:如何为UIActionSheet创建彩色或半透明背景?

当您尝试删除iPhone的Notes应用程序中的注释时,会弹出一个UIActionSheet.片材是半透明的(但不是黑色半透明).这是如何实现的?是否有可能使UIActionSheet的背景成为某种颜色?

iphone uikit

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

Lucene.NET - 按int排序

在最新版本的Lucene(或Lucene.NET)中,以排序顺序恢复搜索结果的正确方法是什么?

我有一个这样的文件:

var document = new Lucene.Document();
document.AddField("Text", "foobar");
document.AddField("CreationDate", DateTime.Now.Ticks.ToString()); // store the date as an int

indexWriter.AddDocument(document);
Run Code Online (Sandbox Code Playgroud)

现在我想进行搜索并按照最近的顺序返回我的结果.

如何通过CreationDate进行搜索结果搜索?我看到的所有文档都是针对使用现已弃用的旧版本的Lucene版本.

sorting lucene lucene.net

9
推荐指数
1
解决办法
3063
查看次数

Java SWT与COM互操作 - 将float []放入Variant中?

在我的Java SWT应用程序中,我正在托管第三方ActiveX控件.我正在使用OleClientSite来做到这一点.

// Ah, this works. :-)
OleAutomation comObject = new OleAutomation(...);
Run Code Online (Sandbox Code Playgroud)

我想从Java调用2个简单的函数.以下是COM函数定义:

[id(5)]
void easyFoo([in] int blah);

[id(20)]
void problemFoo([in] VARIANT floatArray);
Run Code Online (Sandbox Code Playgroud)

容易,对吗?这是我的假装代码:

// Ah, this works. :-)
OleAutomation comObject = new OleAutomation("Some3rdPartyControlHere");

// Call easyFoo(42). This works. :-)
int easyFooId = 5;
comObject.invoke(easyFooId, new Variant[] { new Variant(42) });

// Call problemFoo(new float[] { 4.2, 7.0 }). This doesn't work. :-(
int problemFooId = 20;
comObject.invoke(problemFooId, [ACK! What goes here?]);
Run Code Online (Sandbox Code Playgroud)

问题出在最后一行:如何将float数组传递给第三方COM对象?救命!

java swt activex ole com-interop

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

AspNet核心身份 - cookie未在生产中设置

我有一个.NET Core 2 Web应用程序,我想使用ASP.NET Identity来验证我的用户.在.NET Core 1.x上,我的代码工作正常.

我迁移到.NET Core 2,并在Visual Studio中本地运行时进行身份验证.但是,当我部署到实时环境时,身份验证将停止工作:身份验证cookie未在生产环境中设置.

我的Startup.cs代码如下所示:

public void ConfigureServices(IServiceCollection services)
{
   services.AddIdentity<AppUser, RavenDB.IdentityRole>()
         .AddDefaultTokenProviders(); 

   ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   ...

   app.UseAuthentication();
}
Run Code Online (Sandbox Code Playgroud)

要登录,我的代码如下所示:

public async Task<ActionResult> SignIn(...)
{
   var user = ...; // Load the User from the database.
   await this.signInManager.SignInAsync(user, isPersistent: true);

   ...
}
Run Code Online (Sandbox Code Playgroud)

此代码在本地工作:设置了ASP.NET Identity auth cookie.但是,当我将此部署到Azure中的生产环境时,cookie永远不会被设置.

我错过了什么?

authentication asp.net-identity asp.net-core

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