我想将多个文件压缩成一个zip.
我现在坚持这个:
Get-ChildItem -path C:\logs -Recurse | Where {$_.Extension -eq ".csv" -and $_.LastWriteTime -lt (Get-Date).AddDays(-7)} | write-zip -level 9 -append ($_.LastWriteTime).zip | move-item -Force -Destination {
$dir = "C:\backup\archive"
$null = mkdir $dir -Force
"$dir\"
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外
Write-Zip:无法将参数绑定到参数'Path',因为它为null.
这部分是问题:
write-zip -level 9 -append ($_.LastWriteTime).zip
Run Code Online (Sandbox Code Playgroud)
我之前从未使用过PowerShell,但我必须提供脚本,我无法提供ac#解决方案.
我正在尝试编写一些单元测试来测试我的WCF服务的端点,为此我想在单元测试本身而不是在IIS中托管服务.我找到了这篇文章,我已经阅读并进行了更改,所以我使用它进行托管ServiceHost,我可以看到单元测试试图运行它但我似乎遇到了一些问题.
当我运行测试时,我在打开服务时收到以下错误:
此服务需要ASP.NET兼容性,并且必须在IIS中托管.在IIS中托管服务并在web.config中启用ASP.NET兼容性,或将AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode属性设置为Required以外的值.
这是由我的服务类上的以下属性设置引起的:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Required )]
Run Code Online (Sandbox Code Playgroud)
然后我尝试将以下内容添加到我的app.config中,但它似乎没有任何区别:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题吗?
我正在使用MVVM-Light,我的继电器命令工作正常,我刚刚读到我应该实现CanExecuteChanged和CanExecute.虽然我无法找到一个好的例子.
有没有人有一个如何实现这些的好例子.
CanExecute在无法执行时需要返回False,但不会只是取消按钮?
我什么时候执行CanExecuteChanged?
任何人都有任何好的例子,什么时候使用每一个,我的代码工作没有,但这篇博文说明我应该实现这些项目.
我有点困惑,因为我说我认为我只是将Enabled属性或东西绑定到ViewModel中的属性,所以我可以禁用按钮或类似的控件?
任何理解上的帮助都会非常感激.
编辑
这就是我现在所拥有的...它正在工作,但按钮不是物理禁用只有命令不运行,因为我返回false.我在构造函数中调用CanExecuteMe来强制运行RaiseCanExecuteChanged ...
这在我的viewmodel的construtor中运行
this.Page2Command = new RelayCommand(() => this.GoToPage2(), () => CanExecuteMe);
CanExecuteMe = false;
Run Code Online (Sandbox Code Playgroud)
这是我的其余代码,我从一个例子中得到了它.
private bool _canIncrement = true;
public bool CanExecuteMe
{
get
{
return _canIncrement;
}
set
{
if (_canIncrement == value)
{
return;
}
_canIncrement = value;
// Update bindings, no broadcast
//RaisePropertyChanged(CanIncrementPropertyName);
Page2Command.RaiseCanExecuteChanged();
}
}
public RelayCommand Page2Command
{
get;
private set;
}
private object GoToPage2() …Run Code Online (Sandbox Code Playgroud) 我有一个简单的脚本,它读取文件夹名称并将它们输出到文本文件中.我意识到我得到了更多输出然后我想要,所以我使用select-item cmdlet从哈希表中选择name属性.问题是仍然存在我省略的数据通常填充的所有空白区域,因为白色空间会破坏我的脚本,因此无法解决我的问题.
我已经尝试了一些[正则表达式]命令用(/ S +)删除空白,但我真的不知道我使用了一些代码试图从一个有人帮助我的例子进行调整.主题名称与此处的标题相同,也在此网站上.任何可以帮助我的人我会很感激!
基本上,我无法弄清楚如何将文件夹的名称输出到一个简单的文本文件与ZERO空白(每个文件夹名称1行).
$accFolder = Read-Host "Enter the account folder container....: "
$dataArray = Get-ChildItem "D:\influxcyst\$accFolder" | select-object name
$dataArray
$dataArray | Out-File $HOME\desktop\$accFolder.txt
$newArray = get-content $HOME\desktop\$accFolder.txt
#[regex]$regex = "\s(\S+)\s"
#[regex]::matches($newArray,$regex) | foreach-object {$_.groups[1].value}
Run Code Online (Sandbox Code Playgroud) 我正在准备一个Visual Basic 2005上的一个类,目标是Visual Basic 6程序员迁移到.NET平台.
我主要关心的是教我的学生在.NET中开发的最佳实践,我想知道是否考虑使用VB运行时函数VB.NET是否合法.
我已经读过VB.NET中的许多VB函数实际上都在.NET Framework上调用方法,因此它们似乎主要是为了简化从早期版本的Visual Basic到VB.NET的过渡.但是,VB.NET团队似乎建议尽可能使用它们,因为他们声称他们在.NET框架API之上进行了一些优化.
你对此有何看法?
如果我这样做:
var repository = new Mock<IRepository<Banner>>();
repository.Setup(x => x.Where(banner => banner.Is.AvailableForFrontend())).Returns(list);
Run Code Online (Sandbox Code Playgroud)
"Where"是我的存储库中的一个方法Func<T, ISpecification<T>.AvailableForFrontend返回ISpecification的实现,list是存储库的泛型类型的IEnumberable.
它编译得很好,但是当我运行测试时出现以下错误.
---- System.NotSupportedException : Expression banner => Convert((banner.Is.AvailableForFrontend() & banner.Is.SmallMediaBanner())) is not supported.
Run Code Online (Sandbox Code Playgroud)
如果我在直接接受ISpecification的存储库中使用Where的其他重载,则没有问题.
所以我的新手模拟/ Moq问题是:我可以使用lamdba作为参数存根方法调用吗?或者我应该以另一种方式解决这个问题?
DataSet在ASP.NET中导出到Excel时,是否可以向Excel添加自定义标头?我有这样一个要求.我可以DataSet成功导出到Excel.但我无法添加自定义标头.如果有人有解决方案,请帮助我.提前致谢.
我试图访问注入构造函数的模拟(通过Nsubstitute)类.
我使用以下代码
var fixture = new Fixture()
.Customize(new AutoNSubstituteCustomization());
var sut = fixture.Create<MyService>();
Run Code Online (Sandbox Code Playgroud)
sut是成功创建的,并且在"MyService"的构造函数上注入了一个名为"IFileUtils"的接口的模拟版本.
但我需要访问它,所以阅读后我相信我需要冻结对象,所以我可以这样访问它
var fileUtilMock= fixture.Freeze<Mock<IFileUtils>>();
Run Code Online (Sandbox Code Playgroud)
但是我认为这段代码是Moq语法,因为"Mock"无法找到.
通常要创建一个类的Nsubstitute,您可以执行以下操作
var fileUtilMock= Substitute.For<IFileUtils>();
Run Code Online (Sandbox Code Playgroud)
但当然这并没有冻结,所以它没有被使用并注入构造函数中.
有人可以帮忙吗?
是否有某种方法可以让 AutoFixture 使用内部设置器创建属性?
我查看了 AutoFixture 源代码,发现在 AutoPropertiesCommand 中,GetProperties 方法检查属性是否具有 GetSetMethod() != null。使用内部设置器,这将返回 null,除非您将 ignorePublic 参数设置为 true。
最简单的事情当然是让 setter 公开,但在我正在研究的项目中,这不是正确的解决方案。
下面以项目中的一段简化代码为例。
public class Dummy
{
public int Id { get; set; }
public string Name { get; internal set; }
}
public class TestClass
{
[Fact]
public void Test()
{
var dummy = new Fixture().Create<Dummy>();
Assert.NotNull(dummy.Name);
}
}
Run Code Online (Sandbox Code Playgroud) 我试图将2个复杂对象与AutoFixture进行比较,OfLikeness但遗憾的是没有成功.在比较嵌套对象(也是OfLikeness)时,按预期工作,比较主对象结果与错误说明子对象不匹配.我假设问题是Likeness仅将语义比较器应用于主对象,并使用默认的Equal实现来比较嵌套对象,该实现检查引用匹配(可能是我的假设是错误的?).
这可以澄清我想要实现的目标:
public class ComplexMasterObject{
public ChildFirst child1 {get;set;}
public ChildSecond child2 {get;set;}
public string SimpleProp {get;set;}
}
public class ChildFirst {
public string SomeStringProp1 {get;set;}
public int SomeIntProp1 {get;set;}
}
public class ChildSecond {
public string SomeStringProp1 {get;set;}
public int SomeIntProp1 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
测试:
public void TestLikeness_Success()
{
var expected = new ComplexMasterObject {
Child1 = new ChildFirst {
SomeStringProp1 = "ChildFirst SomeStringProp1",
SomeIntProp1 = 1
},
Child2 = new ChildSecond {
SomeStringProp1 = "ChildSecond …Run Code Online (Sandbox Code Playgroud) c# ×5
.net ×4
autofixture ×3
asp.net ×2
mocking ×2
powershell ×2
testing ×2
unit-testing ×2
canexecute ×1
compare ×1
formatting ×1
header ×1
moq ×1
mstest ×1
mvvm ×1
mvvm-light ×1
nsubstitute ×1
parsing ×1
pipe ×1
regex ×1
relaycommand ×1
vb.net ×1
vb6 ×1
wcf ×1
whitespace ×1
zip ×1