小编Mat*_*ves的帖子

将任何类型的数组转换为List <T>(C#)

下面的函数接受一个对象,该对象有时可以是给定类型的数组.在这种情况下,我认为可以使用obj [0] .GetType()来确定类型,假设数组至少有一个成员.我想将这样的数组转换为适当类型的通用List <T>,但下面的代码只能成功转换为List <object>.如何才能做到这一点?

        public object GetDeserializedObject(object obj, Type targetType)
        {
            if (obj is Array)
            {
                List<object> obj2 = new List<object>();
                for (int i = 0; i < ((Array)obj).Length; i++)
                {
                    obj2.Add(((object[])obj)[i]);
                }
                obj = obj2;
            }
            return obj;
        }

请注意,GetSerializedObject()实现了属于IDataContractSurrogate接口的函数,因此我认为我不能更改其签名,如图所示.

c#

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

尝试从 Docker 中的 VS 运行时出现错误“getcwd() failed: No such file or directory”

我有一个项目设置为使用 docker-compose 在 Docker 中本地运行。直到最近,它一直运行良好。我不相信我改变了任何应该影响这个的东西(除了可能是 VS 升级?),我什至尝试回滚到较旧的提交。在所有情况下,我现在都会收到一条错误消息,它在 Visual Studio 的输出窗口中显示为:

docker exec -i f93fb2962a1e sh -c ""dotnet"  --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages  "bin/Debug/netcoreapp3.1/MattsTwitchBot.Web.dll" | tee /dev/console"
sh: 0: getcwd() failed: No such file or directory
  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download
Run Code Online (Sandbox Code Playgroud)

我尝试了各种不同的方法(更改 Docker 文件中的基本映像、删除旧映像和容器等),但我一直收到相同的错误消息。奇怪的是,当我执行 File->New 时,Visual Studio 会生成一个外观非常相似的 Docker 文件,并且运行良好。我不知道问题是什么,但我希望这里有人能发现它。

我的完整 repo 可以在 Github 上找到。这是 asp.net 核心项目的 docker:

FROM …
Run Code Online (Sandbox Code Playgroud)

visual-studio docker docker-compose asp.net-core

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

如何通过Silverlight发送UDP组播数据包?

我正试图找到一种通过silverlight应用程序发送udp广播数据包的方法.我所做的大部分研究都表明,由于套接字仅支持tcp,因此无法通过silverlight实现这一点.但是有没有其他方法来发送广播数据包,例如通过javascript或silverlight应用程序可以调用的东西?

silverlight udp

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

Objective C Class还是struct?

我有一个类歌曲,其属性为Title,Key,Artist等.没有方法.我遍历歌曲信息数据库并为每个创建一个Song对象,填充属性,然后将Song对象存储在NSArray中.

然后我想,为什么不只是有一个具有所有相同属性的结构歌曲而不是类宋.这样做会消除类文件,using类的.m文件中的#import Song行,以及需要alloc,init,release.

另一方面,我必须将struct定义放在可能需要它的每个类中.(除非有一些全局可访问的位置 - 是否存在?)此外,结构是否可以存储在NSArray中?

struct class objective-c nsarray

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

在NAnt中创建zip文件中的文件夹

在NAnt脚本的最后,最后一步是创建一个ZIP文件.

目前,我这样做:

<zip zipfile="${target.dropfile}">
    <fileset basedir="${somefolder}">
        <include name="file1.dll" />
    </fileset>
    <fileset basedir="${someotherfolder}">
        <include name="file2.dll" />
    </fileset>
    <!-- ...etc ... -->
</zip>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我希望zip文件更有条理.我希望zip文件包含两个文件夹,folder1和folder2,我希望file1.dll在folder1中,file2.dll在folder2中.在<zip />任务中有没有办法做到这一点?

directory nant zip build

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

在Mono.Csharp中运行一个迷你程序

我正在尝试编写一个交互式C#教学应用程序,用户可以在其中试验/更改代码示例,看看会发生什么(有点像jsfiddle).

我发现很多小型表达式或类似REPL的Mono.Csharp用作运行时编译器的例子,但是我找不到一个执行"迷你程序"的例子.

这是我到目前为止的玩具代码(MVC动作)."code"参数直接从textarea发布.

[HttpPost]
public ActionResult Index(string code)
{
    var reportWriter = new StringWriter();
    var settings = new CompilerSettings();
    var printer = new ConsoleReportPrinter(reportWriter);
    var reports = new Report(printer);
    var eval = new Evaluator(settings, reports);

    var model = new CodeViewModel();
    model.Code = code;
    eval.Run(code);
    model.Result = reportWriter.ToString();

    return View("Index", model);
}
Run Code Online (Sandbox Code Playgroud)

现在假设代码是这样的字符串:

using System;
public class MyClass
{
    public void DoSomething()
    {
        Console.WriteLine("hello from DoSomething!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何引导它(即实例化一个MyClass对象并调用DoSomething它)?我已经尝试过追加new MyClass().DoSomething();到最后,但我明白了:

{interactive}(1,2): warning CS0105: The using …
Run Code Online (Sandbox Code Playgroud)

c# compiler-construction mono bootstrapping

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

jquery的网站生活会变慢吗?

我有一个问题我正在使用jquery UI选项卡,使用ajax加载所有内容.现在,我每次点击选项卡时都会将部分视图加载到该选项卡中.

现在在这个局部视图中,它们是javascript文件,它们使用jquery来绑定该选项卡中所需的所有事件以及我正在使用的一些jquery插件.

现在,每次加载该选项卡时,所有这些脚本都会被加载.如果它被点击了10次,那么这些脚本被加载了10次,现在每个说我的按钮现在将有10个相同的事件就意味着如果有人点击那个按钮,10个事件将全部触发并执行相同的操作.

因此,我需要找到一些解决方案,将所有脚本移出并将其放在主页面上并使用jquery.live或其他解决方案.

我试图对UI选项卡使用jquery缓存,但这不起作用,因为在更改效果选项卡B时,表示选项卡B中的某些内容表示我需要重新加载选项卡B但是脚本无法重新加载,否则我会遇到相同的问题现在的问题.

jquery jquery-ui

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

OData和WebAPI路由冲突

我有一个带有WebAPI控制器的项目.我现在正在添加OData控制器.问题是我的OData控制器与现有的WebAPI控制器具有相同的名称,这导致异常:

Multiple types were found that match the controller named 'Member'. This can happen if the route that services this request ('OData/{*odataPath}') found multiple controllers defined with the same name but differing namespaces, which is not supported. The request for 'Member' has found the following matching controllers: Foo.Bar.Web.Areas.API.Controllers.MemberController Foo.Bar.Web.Odata.Controllers.MemberController
Run Code Online (Sandbox Code Playgroud)

即使控制器位于不同的名称空间并且应该具有可区分的路由,也会发生这种情况.以下是我所拥有的配置的摘要.我该怎么做(除了重命名控制器)以防止此异常?我正在尝试将这些端点公开为:

mysite.com/OData/Members
mysite.com/API/Members/EndPoint
Run Code Online (Sandbox Code Playgroud)

在我看来,URL足够明显,必须有一些方法来配置路由,所以没有冲突.

namespace Foo.Bar.Web.Odata.Controllers {

    public class MemberController : ODataController {
        [EnableQuery]
        public IHttpActionResult Get() {
            // ... do stuff with EF ...
        }
    }
}

namespace …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc routing odata asp.net-web-api

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

Couchbase 4010错误

我一直在测试Couchbase 5并创建了一个名为fp-conversion-data其中包含一些JSON数据的存储桶.我一直在尝试运行一些简单的查询,例如:

SELECT * FROM fp-conversion-data limit 5;
Run Code Online (Sandbox Code Playgroud)

我没有得到预期的结果,而是一直收到这个错误:

[
  {
    "code": 4010,
    "msg": "FROM expression term must have a name or alias",
    "query_from_user": "SELECT * FROM fp-conversion-data limit 5;"
  }
]
Run Code Online (Sandbox Code Playgroud)

couchbase sql++

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

go couchbase (gocb) 错误 - 不明确的超时或明确的超时

我刚刚开始使用 Go 中的 Couchbase,使用库 gocb。

就像尝试向我的服务器查询特定 ID 并获取结果的概念证明一样。下面是修改后的代码示例。

cOpts := gocb.ClusterOptions{
        Authenticator: gocb.PasswordAuthenticator{
            Username: "user",
            Password: "pw",
        },
    }

    cluster, err := gocb.Connect("couchbase://my.dev.server.net/", cOpts)
    if err != nil {
        panic(err)
    }

    qOpts := gocb.QueryOptions{}

    // create query
    queryStr := "SELECT * FROM myBucket WHERE id = '123456789'"

    rows, err := cluster.Query(queryStr, &qOpts)
    if err != nil {
        panic(err)
    }

    fmt.Printf("rows: %v\n", rows)

    for rows.Next() {
        var intfc interface{}
        err = rows.Row(&intfc)
        if err != nil {
            panic(err)
        }
        fmt.Printf("interface result: …
Run Code Online (Sandbox Code Playgroud)

go couchbase sql++ gocb

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