小编Eri*_*rik的帖子

rsync:如何配置它以在服务器上创建目标目录?

我想rsync从本地计算机到服务器.在不存在的rsync目录上,我想首先在服务器上创建该目录.

我怎样才能做到这一点?

rsync

127
推荐指数
6
解决办法
14万
查看次数

Moq:设置属于多个接口的属性的简单方法

我有一些接口,我试图用以下结构(简化)来模拟:

interface A 
{
    DateTime DateCreated { get; set; }
}
interface B : A
{
    DateTime DateCreated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是 DateCreated 是每个接口的单独属性,因此即使我知道的具体对象只有这些共享属性的一个共享实现,调用 Mock.SetupAllProperties 也会为每个对象提供一个单独的实现。这意味着它们不共享值,因此在访问 ((A)obj).DateCreated 时,调用 ((B)obj).DateCreated = {blah} 不会在其他地方给出所需的结果。

我认为在 Moq 中解决此问题的唯一方法是执行以下操作:

var m = new Mock<B>();
DateTime closure;
m.SetupGet(x => x.DateCreated).Returns(() => closure);
m.SetupSet(x => x.DateCreated).Callback(value => { closure = value; });
m.As<A>.SetupGet(x => x.DateCreated).Returns(() => closure);
m.As<A>.SetupSet(x => x.DateCreated).Callback(value => { closure = value; });
Run Code Online (Sandbox Code Playgroud)

这很乏味,容易出错,我需要为至少十几个属性执行此操作,我不知道还有多少。我可能会写一个通用方法来做到这一点,但似乎必须有一个更简单的解决方案。谁能建议一个更好的方法来做到这一点?

(我很想“更正”接口的定义,但是这段代码在我们整个组织中共享的通用遗留代码中。由于这是一个潜在的破坏性更改,我不能随意地进行修改。)

编辑:只是为了澄清,我想要的是一种简单的方法,能够使用最小起订量执行此操作:

class C : B
{ …
Run Code Online (Sandbox Code Playgroud)

c# moq

5
推荐指数
0
解决办法
1838
查看次数

标签 统计

c# ×1

moq ×1

rsync ×1