小编Joh*_*oon的帖子

ArgumentException与ArgumentNullException?

我正在重构一些代码并添加一个方法来替换(即将推出)已弃用的方法.新方法具有以下特征:

FooResult Foo(FooArgs args) { ... }
Run Code Online (Sandbox Code Playgroud)

不推荐使用的方法包含越来越多的参数.这些参数现在是FooArgs类的属性.不推荐使用的方法有几个保护条件,它使用以下结构检查空值:

if (parameter1 == null)
    throw new ArgumentNullException(“parameter1”);
if (parameter... == null)
    throw new ArgumentNullException(“parameter...”);
if (parameterN == null)
    throw new ArgumentNullException(“parameterN”);
Run Code Online (Sandbox Code Playgroud)

既然已将参数折叠到FooArgs类中,我应该为参数的各个属性抛出ArgumentNullExceptionFooArgs:

if (args.Property1 == null)
    throw new ArgumentNullException(“args.Property1”);
if (args.Property... == null)
    throw new ArgumentNullException(“args.Property...”);
if (args.PropertyN == null)
    throw new ArgumentNullException(“args.PropertyN”);
Run Code Online (Sandbox Code Playgroud)

或者为整个参数抛出更一般的ArgumentException: FooArgs

if (args.Property1 == null)
    throw new ArgumentException(“Property1 cannot be null.”, “args”);
if (args.Property... == …
Run Code Online (Sandbox Code Playgroud)

.net c#

21
推荐指数
2
解决办法
5790
查看次数

在预构建事件中执行批处理文件时出现问题

我正在尝试在预构建事件期间执行批处理文件.我有一个新项目,并添加了foo.bat.该文件包含以下行:

echo bar
Run Code Online (Sandbox Code Playgroud)

当我将预构建事件命令行设置为foo.bat时,我收到以下错误:

命令"foo.bat"退出代码9009.

当我将pre-build event命令行设置为调用foo.bat时,我收到以下错误:

命令"call foo.bat"退出代码1.

我读过的与这些代码相关的所有内容通常表示批处理文件的内容存在问题(在这种情况下不太可能),或者系统无法找到批处理文件.

批处理文件从命令提示符正常工作.我已经尝试过的事情:使用不同的工具,各种编码创建文件,在文件中放置出口0,对文件进行不同的构建操作,以及将文件复制到输出目录.一切都没有运气.

我错过了什么?它必须是简单的东西.

更新:是的 ,很简单 - 路径的长度太长.请参阅下面的答案了解详情

谢谢!

c# visual-studio-2010

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

强制WPF在聚焦元素上提交更改

我正在使用VS2010,WPF和EF.我通过从Data Sources工具窗口中拖出一个实体来将控件放在我的窗口上.我使用了"详细信息"设置,因此我的实体由多个标签和文本框表示.我还添加了一个包含以下代码的按钮:

_context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

当我编辑数据时,无论哪个文本框具有焦点的更改都不会提交回数据库.其他一切都很好.如果我在点击保存按钮之前将焦点转移到另一个元素,它也会提交.我对DataGrid经历了同样的事情.

我知道我错过了一些简单的东西,但我能搞清楚.关于我缺少的任何想法?

谢谢!

data-binding wpf entity-framework commit visual-studio-2010

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

什么是T-SQL语句块?

在研究我可以在MSDN文章中做的事情时说:

从查询或过程无条件退出.RETURN是立即完成的,可以在任何时候用于退出过程,批处理或语句块.不执行RETURN之后的语句.

文档没有接近我正在研究的具体情况.阅读之后,我意识到我不理解Return语句,并且(更具体地说)" 语句块 " 的定义以及我认为.所以...

究竟什么是t-sql"语句块"?它们是Begin ... End用C#中的括号定义的{ ... },还是完全不同的东西?

谢谢!

t-sql sql-server return

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

为数据库操作选择WF CodeActivity和AsyncCodeActivity之间

我仍然是WF的新手,所以如果我第一次没有正确使用这个措辞,请耐心等待.;)

如果您正在针对规范化的数据库进行选择,使用主键,在相当低容量的环境中返回单个记录(每天几百个请求),是否使用CodeActivityvs 确实有所不同AsyncCodeActivity

虽然我还有一些关于托管和执行的额外研究,但是有可能(但不可能)在同一时间或几乎同时接收多个请求.我不确定这是否会改变答案.

谢谢!

c# workflow-foundation-4

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

ASP.NET Core:从解决方案中的另一个项目访问appsettings

在我的Startup.cs课程中,我有以下配置构建,初始化db上下文:

var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", true, true)
                    .AddJsonFile($"appsettings.{env.EnvironmentName}.json",true)
                    .AddEnvironmentVariables();

Configuration = builder.Build();

NHibernateUnitOfWork.Init(Configuration["ConnectionStrings:OracleConnection"]);
Run Code Online (Sandbox Code Playgroud)

NHibernateUnitOfWork作为类库项目位于不同的项目中.我希望能够注入(或以某种方式传递设置)而不是NHibernateUnitOfWork.Init在我的Startup.cs类中使用.

我可以在我的类库中构建appsettings但是试图避免这种情况.

什么是理智的方式来做到这一点?

c# asp.net asp.net-core

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

如何在EF中使用抽象类

我有一个DbContext类

abstract public class CostCenter
{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    abstract public Guid ID
    {
        get;
        set;
    }

    abstract public string CostCenterName
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我无法运行add-migration和update-database命令,它给我错误,请注意,这里需要抽象类,

entity-framework

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