小编lah*_*rah的帖子

你可以使用多个过滤器调用Directory.GetFiles()吗?

我正在尝试使用该Directory.GetFiles()方法来检索多种类型的文件列表,例如mp3's和jpg's.我试过以下两个都没有运气:

Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个电话中执行此操作?

.net c# filesystems

338
推荐指数
14
解决办法
36万
查看次数

枚举加法与减法和铸造

为什么添加需要演员但减法在没有演员表的情况下有效?请参阅下面的代码以了解我的要求

public enum Stuff
{
    A = 1,
    B = 2,
    C = 3
}

var resultSub = Stuff.A - Stuff.B; // Compiles
var resultAdd = Stuff.A + Stuff.B; // Does not compile
var resultAdd2 = (int)Stuff.A + Stuff.B; // Compiles     
Run Code Online (Sandbox Code Playgroud)

注意:对于加法和减法,在上述所有三个例子中,结果是否超出范围(枚举)并不重要.

.net c# enums .net-4.0

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

如何在启动时删除所有hangfire重复工作?

我正在考虑使用Hangfire作为重复工作的作业调度程序.所以配置它们很简单AddOrUpdate,但是我该如何删除呢?我不希望RecurringJob.RemoveIfExists()在删除该作业时污染我的代码,然后必须记住以后删除它.

有没有办法获取所有定期作业的列表并在服务器启动时删除它们,因此我的代码每次都会重新添加它们?如果没有,如果有更好的方法?

例如

应用程序版本1:添加了新的Hangfire定期作业 Do something 1

应用程序版本2:添加了新的Hangfire定期作业Do something 2Do Something 3

应用程序版本3:删除了Hangfire定期作业 Do something 2

问题:作业仍将存在于服务器上,并显示"无法加载类型..."错误,需要删除.

c# recurring hangfire

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

Html.TextBoxFor格式化还是Html.EditorFor htmlAttributes?

我有点难过,因为我想格式化值并为css类添加一个html属性.

如果我使用@Html.TextBoxFor(m => m.DateModified) - 我可以添加html属性,但格式不能通过成员上的DisplayFormat属性工作.

如果我使用 @Html.EditorFor(m => m.DateModified) - 格式化工作,但我不能添加HTML属性

如果我使用@Html.TextBox("DateModified", Model.DateModified, ...) - 当表单处于添加模式时,当Model为null时,我得到null引用异常

实现这一目标的最佳方法是什么?

c# asp.net-mvc asp.net-mvc-3

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

如何从数据库中选择记录并在原子查询中更新它

我在一个带有Status列的表中有许多记录,我想选择一个Status = Pending的单个记录,并在同一个原子查询中将它标记为Status = InProcess.最好的方法是什么?

这是必需的,因为多个查询可以在尝试处理这些记录的同时运行,并且我不希望两个线程获取相同的记录来处理.

sql t-sql select atomic sql-server-2008

12
推荐指数
2
解决办法
4796
查看次数

WPF绑定顺序如何确保一个属性在另一个属性之前绑定

<Controls:MyControl Mode="Mode1" Value="{Binding Path=Something}" />
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我在ListView的数据模板中使用此控件时,在设置Mode属性之前发生绑定.

如何确保在值绑定之前始终设置模式?

c# wpf binding

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

如何在复杂的屏幕上避免数据绑定/事件地狱?

这更像是一个架构/设计问题.

我曾经遇到过一些用WPF/Windows Forms等编写过的项目,这些项目具有很多字段的复杂屏幕,这些字段相互连接(它们的值相互依赖,涉及一些逻辑).

这些项目在我们实施之后就已经开始了,我发现很多事件/数据绑定地狱 - 我的意思是因为所有这些字段都依赖于其他字段,所以他们实现了INotifyPropertyChanged,其他字段被修改为结果.这会导致相同的字段在屏幕加载时更新5-6次,并且填充字段的顺序会导致可怕的错误.(例如,在作业类型之前设置了日期,而不是在作业类型之后,因此我最终得到了不同的工作费.)

更糟糕的是,一些黑客在UI事件上实现(例如,DropDown更改为更新字段X),而其他黑客则在UI绑定的域模型中.

基本上,这是一个巨大的混乱,我只是想知道实现这样的事情的最佳方式是,如果我是从头开始.或者首先避免这么复杂的屏幕是个好主意?

c# architecture data-binding wpf winforms

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

LINQ to SQL*编译*查询以及何时执行

我有以下编译查询.

private static Func<Db, int, IQueryable<Item>> func =
        CompiledQuery.Compile((Db db, int id) => 
            from i in db.Items
            where i.ID == id
            select i
            );
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它立即在数据库上执行

var db = new Db()
var query = func(db, 5);  // Query hits the database here
Run Code Online (Sandbox Code Playgroud)

就像在做之前一样

var result = query.SingleOrDefault(); // Happens in memory
Run Code Online (Sandbox Code Playgroud)

但是如果没有编译这个查询,就像在

var query = from i in db.Items
            where i.ID == id
            select i
Run Code Online (Sandbox Code Playgroud)

然后它在完成在数据库上执行

   var result = query.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

注意:这是返回IQueryable执行的编译查询何时重复,但那里的所有答案似乎都不同意我的发现.我已经在那里发布了我的答案,但我不知道如何让人们关注它,因为它已经超过2年了.

c# linq linq-to-sql

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

如何使用Powershell Restore-SqlDatabase cmdlet可靠地覆盖现有数据库

我有这个cmdlet来恢复数据库,如果没有使用现有数据库,它可以正常工作.

Restore-SqlDatabase -ServerInstance $databaseServerInstance -Database $database -BackupFile $backupLocation -ReplaceDatabase
Run Code Online (Sandbox Code Playgroud)

但是当数据库正在使用时,覆盖失败:

System.Data.SqlClient.SqlError:无法获取独占访问权限,因为数据库正在使用中

我无法弄清楚是否有一种简单的方法(通过参数)来覆盖它并终止连接或将数据库置于单用户模式.有这样的事吗?或者我是否必须切换到SMO才能执行比基本恢复更复杂的操作?

我现在正在使用SMO API的解决方法首先删除数据库,但如果可能的话,我希望简化它.

$srv = new-object Microsoft.SqlServer.Management.Smo.Server($databaseServerInstance)

# If the database exists then drop it otherwise Restore-SqlDatabase may fail if connections are open to it
if ($srv.Databases[$database] -ne $null)
{
    $srv.KillAllProcesses($database)
    $srv.KillDatabase($database)
}


Restore-SqlDatabase -ServerInstance $databaseServerInstance -Database $database -BackupFile $backupLocation -ReplaceDatabase
Run Code Online (Sandbox Code Playgroud)

sql powershell sql-server-2012

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

Xamarin Android如何获取传递给ComponentName的Java类名

我需要在构造函数中使用Java类的名称,Android.Content.ComponentName因为Xamarin没有重载的构造函数,typeof(ClrType)就像它对其他一些东西一样.

c# android xamarin.android xamarin

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