小编Ian*_*son的帖子

在Java中尝试/执行模式实现

我是try/do(或trier/doer)模式的粉丝,最好在C#中使用out参数实现,例如:

DateTime date;
if (DateTime.TryParse("2012-06-18", out date))
{
    //Do something with date
}
Run Code Online (Sandbox Code Playgroud)

我正在开发一个Java 1.5项目,为此我正在使用一个名为TryResult的新类来实现try/do模式,该类是从实现try/do模式的任何方法返回的:

public class TryResult<ResultType> {

    private boolean mSuccess = false;
    private ResultType mResult = null;

    public TryResult(boolean success, ResultType result) {
        super();
        this.mSuccess = success;
        this.mResult = result;
    }

    public boolean isSuccess() {
        return mSuccess;
    }

    public ResultType getResult() {
        return mResult;
    }

}
Run Code Online (Sandbox Code Playgroud)

这很好用,但我会将此代码移植到使用J2ME的不同平台,因此泛型不可用.

我目前的选择是从TryResult上面的类中删除泛型并使用普通的旧Object和铸造,或者为我最终使用的类型创建一个新类(例如StringTryResult).

有没有更好的方法在J2ME/Java 1.3上实现这种模式?

java design-patterns java-me

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

Azure管理API:如何更改Web应用程序定价层?

我正在使用管理SDK(即https://github.com/Azure/azure-sdk-for-net)自动创建Azure Web应用程序,并且如何使用更改Web应用程序应用程序服务计划定价层并不明显这个SDK.具体来说,我想将我正在创建的网络应用从"免费"更改为"共享".

我怎样才能做到这一点?

c# web-applications azure azure-web-sites

5
推荐指数
1
解决办法
1821
查看次数

Kotlin:删除数组中相同的相邻成员

如果我有以下数组:

[1,1,1,2,2,1,1,1,1,2,2,3]
Run Code Online (Sandbox Code Playgroud)

Kotlin 中是否有任何内置方法可以过滤掉具有相同值的相邻元素,从而导致:

[1,2,1,2,3]
Run Code Online (Sandbox Code Playgroud)

保留顺序很重要。

PS 我的实际用例不是整数,它是一个实现 equals 的对象。

kotlin

5
推荐指数
1
解决办法
661
查看次数

ASP.NET MVC - 将外部模型传递给编辑器模板

我正在为大多数表单使用自定义编辑器模板,但在尝试使用它们呈现自定义对象选择器时,我发现没有简单的方法将有关包含上下文的信息传递给编辑器模板.

具体来说,我的主窗体呈现域对象的编辑,编辑器模板需要呈现一个AJAX选择器,其中包含依赖于域对象ID的对象列表.我正在使用当前additionalViewData参数传递ID ,我认为这很容易出错,因此非常难看.

我的表单包含类似于以下内容的代码:

@Html.EditorFor(model => model.CategoryId, new { id = model.id })
Run Code Online (Sandbox Code Playgroud)

编辑器模板包含如下代码:

@{
var domainObjectId = ViewData["id"] as int?;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用自定义ModelMetadataProvider选择对象选择器编辑器模板,并希望使用类似的技术将有关包含模型的信息传递给编辑器模板,但这似乎不可能.

所以,我的问题是:

  1. 无论如何使用a ModelMetadataProvider将有关包含模型的信息传递给编辑器模板?
  2. 如果没有,除了通过弱类型additionalViewData参数传递每一条附加信息之外,还有更简洁/更容易的方法来实现我正在尝试的东西吗?

提前致谢!

.net asp.net asp.net-mvc mvc-editor-templates razor

4
推荐指数
1
解决办法
7492
查看次数

MSBuild 15:无法实例化"错误"任务

我正在尝试以编程方式构建一个使用C#7的项目,因此使用MSBuild 15,但是这个任务似乎因为不匹配的程序集引用而失败.

这是我的代码:

        string projectFilePath = Path.Combine(args.Any() ? args.First() :@"C:\Users\newsoni\Documents\Visual Studio 2017\Projects\ConsoleApp2\ConsoleApp2.sln");

        ProjectCollection pc = new ProjectCollection();
        Dictionary<string, string> globalProperty = new Dictionary<string, string>();
        globalProperty.Add("Configuration", "Debug");
        globalProperty.Add("Platform", "x86");

        BuildParameters bp = new BuildParameters(pc);
        bp.Loggers = new ILogger[] { new Logger(), new ConsoleLogger(),  };
        BuildRequestData BuidlRequest = new BuildRequestData(projectFilePath, globalProperty, "4.0", new string[] { "Build" }, null);
        BuildResult buildResult = BuildManager.DefaultBuildManager.Build(bp, BuidlRequest);
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

C:\Users\newsoni\Documents\Visual Studio 2017\Projects\ConsoleApp2\ConsoleApp2.sln.metaproj : error MSB4127: The "Error" task could not be instantiated from the assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, …
Run Code Online (Sandbox Code Playgroud)

msbuild c#-7.0 msbuild-15

4
推荐指数
1
解决办法
1306
查看次数

Visual Studio 2017 Web项目:不能使用C#7

我在Visual Studio 2017中创建了一个全新的Web项目,但我不能在此Web项目中使用任何C#7功能.Visual Studio中未报告任何错误,但构建失败,并且输出窗口验证了这一点,该窗口显示CSC任务失败.

这是一个重现问题的项目.

https://drive.google.com/open?id=0B-mqMIMqm_XHQkxONjRLYzA3SUk

这是一个开箱即用的VS web项目,但HomeController.cs中添加了以下代码:

var i = 1_000_000;
Run Code Online (Sandbox Code Playgroud)

这使用_这是一个C#7功能.删除此行,构建成功.

使用C#7功能可以很好地编译非Web项目,并且我已经找到了用于Web项目的不同编译器的差异.非Web项目使用以下编译器:

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe

Web项目使用此编译器:

[解决方案根目录]\packages\Microsoft.Net.Compilers.1.3.2\build ..\tools\csc.exe

我该如何解决这个问题?

c# visual-studio c#-7.0

4
推荐指数
1
解决办法
962
查看次数

.NET LINQ IQueryable:“表达式”的用途是什么?

我正在开发 LINQ 提供程序,因此正在实现 IQueryable。

该接口中的属性的用途是什么Expression?我通常只是Expression.Constant(this)从我的实现中返回类似的东西,但不知道这是否不好。

奇怪的是,文档指出“这允许框架区分 LINQ 和 Entity SQL 查询”。

.net linq iqueryable

3
推荐指数
1
解决办法
2712
查看次数

Android Google Maps v2:动画标记大小

我正在尝试设置标记的大小,因为它被添加到地图中,基本上我希望标记增长.我看不到任何获得标记的实际视图的方法,所以我认为我不能使用标准的Android动画技术(例如ObjectAnimator).

我能看到这样做的唯一方法是实现我自己的动画并使用该setIcon方法来更改标记图标.

这样做还有其他更理想的方法吗?

我在Xamarin工作,但如果需要可以移植Java代码.

animation android google-maps

3
推荐指数
1
解决办法
3291
查看次数

MongoDB C# 驱动程序:查询拦截器?

MongoDB C# 驱动程序是否支持像实体框架这样的查询拦截器?

我检查了文档但找不到任何内容。

基本上我需要做的是确保对数据库的某些查询(根据上下文)始终应用某些限制。

例如,如果我的文档可以被软删除,那么我总是需要确保为 { "SoftDeleted": false } 添加过滤器。实体框架通过查询拦截器优雅地处理这个问题。

c# linq mongodb

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

Visual Studio:如何调试以 root 身份运行的远程应用程序?

我有一个应用程序在 GCP 中的 Ubuntu 实例上运行。该程序在端口 80 上打开服务器,因此必须以 root 身份运行。

我已成功设置 SSH 连接,但是当我尝试远程连接该进程时,出现错误:

无法附加到进程:.NET 调试器没有足够的权限来调试此进程

在此输入图像描述

我尝试从 开始vsdbgsudo .vs-debugger/vs2022/vsdbg但遇到了同样的错误。

我如何附加到这个过程?

ubuntu .net-core visual-studio-2022

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

C#:CommandLineParser,如何传递字符串数组?

我正在使用CommandLineParser,我想传递多个参数,这些参数最终应该在一个数组中。这是我的班级:

public class ClientConfig : Config
{

    [Option("load")]
    public string[]? Load { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令行时:

my.exe --load=1 --load=2 --load=3
Run Code Online (Sandbox Code Playgroud)

解析时我的“Load”属性应该如下["1", "2", "3"]:但是,当我尝试这样做时,出现以下异常:

System.InvalidOperationException:“序列不包含元素”

我怎样才能解决这个问题?

.net c# command-line-arguments

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

C#7:元组和泛型

C#7有一个新功能,允许我们轻松定义元组,因此我们可以轻松使用包含多个值的结构.

有没有办法将元组用作泛型类型约束或类似?例如,我试图定义以下方法:

public void Write<T>(T value)
    where T : (int x, int y)
{

}
Run Code Online (Sandbox Code Playgroud)

我意识到这个特定的例子是毫无意义的,但是我想象其他场景中有一个包含从另一个类型派生的类型的元组会很有用:

static void Main(string[] args)
{
    var first = new Derived();
    var second = new Derived();

    var types = (t: first, u: second);
    Write(types);

    Console.ReadLine();
}


public static void Write((Base t, Base u) things)
{
    Console.WriteLine($"t: {things.t}, u: {things.u}");
}

public class Base { }
public class Derived { }
Run Code Online (Sandbox Code Playgroud)

此示例不起作用,因为firstsecond是类型Derived.如果我制作它们的类型,Base这工作正常.

c# generics c#-7.0

-1
推荐指数
1
解决办法
1732
查看次数