小编Enr*_*lio的帖子

VB.NET中的VB运行时函数用于VB6程序员

我正在准备一个Visual Basic 2005上的一个类,目标是Visual Basic 6程序员迁移到.NET平台.

我主要关心的是教我的学生在.NET中开发的最佳实践,我想知道是否考虑使用VB运行时函数VB.NET是否合法.

我已经读过VB.NET中的许多VB函数实际上都在.NET Framework上调用方法,因此它们似乎主要是为了简化从早期版本的Visual Basic到VB.NET的过渡.但是,VB.NET团队似乎建议尽可能使用它们,因为他们声称他们在.NET框架API之上进行了一些优化.

你对此有何看法?

.net vb.net vb6

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

是否可以(使用Moq)使用Lambda参数进行存根方法调用?

如果我这样做:

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作为参数存根方法调用吗?或者我应该以另一种方式解决这个问题?

.net c# testing moq mocking

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

AutoFixture - 相似.复杂对象的比较

我试图将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# testing compare autofixture

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

使用Workflow Foundation对性能的影响

我意识到这是一个非常普遍的问题,但我想知道在相当大的企业系统中使用WF禁止命令代码实现业务逻辑对性能的影响.我想听听其他人在这方面的经验.

performance workflow workflow-foundation

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

将异常映射到REST Web服务中的HTTP状态代码

在.NET中构建REST Web服务时,将System.ArgumentNullExceptionSystem.ArgumentException映射到HTTP状态代码的最"RESTful"方式是什么?我的第一个猜测是使用HTTP 400/Bad Request和适当的描述.

将异常映射到HTTP状态代码时,建议的最佳做法是什么?

rest wcf http

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

TFS2010 - 并行构建 - 单一解决方案,单一构建代理

我们有TFS2010和单个解决方案,有近200个项目(是的,我知道,不好主意,不是我的!).我在4核(8超)机器上的构建时间从大约30秒开始,从4分钟顺序完成,通过解耦代码来实现高水平的构建并发性.我现在想在构建服务器上获得它的好处,这必须是可能的,因为MSBuild支持并行构建.怎么样?

msbuild compilation visual-studio tfs2010

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

C#:使用PrimaryKey从DataTable中检索值

我的C#代码存在问题.我已经设置了几个DataTables,并为每个DataTable分配了一个主键.我想要做的是从单个列中检索单行.

让我说我有这个代码:

DataColumn Pcolumn = new DataColumn();
DataColumn[] key = new DataColumn[1];

Pcolumn.DataType = System.Type.GetType("System.Double");

Pcolumn.ColumnName = "length";
key[0] = Pcolumn;


table6F.Columns.Add(Pcolumn);
table6F.Columns.Add("Area", typeof(double));
table6F.Columns.Add("load", typeof(double));
table6F.Columns.Add("weigth", typeof(double));

table6F.PrimaryKey = key;
table.Rows.Add(6.0, 14.0, 17.8 , 11.0 );
table.Rows.Add(7.0, 16.2 , 20.7 , 16.0 );
Run Code Online (Sandbox Code Playgroud)

我想检索第二行(20.7)的"加载",我想在表中搜索7.0,主键列.我虚拟测试这样做,只是为了测试:

Object oV;
double load;

//Get an Table object given the specific row number, this dummy i always set to 0.
// Given Column
oV = table.Rows[0]["load"];
load = Convert.ToDouble(oV.ToString());
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法使用主键提取?

c# datatable ado.net primary-key

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

在WPF中使用Unity解析时,SynchronizationContext.Current为null

我有一个看起来像这样的WPF代码.

public class AlphaProductesVM : BaseModel
{
    private  ObservableCollection<Alphabetical_list_of_product> _NwCustomers;
    private int i = 0;

    public AlphaProductesVM ()
    {
        _NwCustomers = new ObservableCollection<Alphabetical_list_of_product>();
        var repository = new NorthwindRepository();
           repository
               .GetAllProducts()
               .ObserveOn(SynchronizationContext.Current)
               .Subscribe(AddElement);
    }
    public void AddElements(IEnumerable<Alphabetical_list_of_product> elements)
    {
        foreach (var alphabeticalListOfProduct in elements)
        {
            AddElement(alphabeticalListOfProduct);
        }
    }


    public ObservableCollection<Alphabetical_list_of_product> NwCustomers
    {
        get { return _NwCustomers; }
        set { _NwCustomers = value; }
    }}
Run Code Online (Sandbox Code Playgroud)

我使用Unity来解决上述问题AlphaProductesVM.使用PRISM和UnityBootstrapper发现模块时,这是即时的.在运行时.ObserveOn(SynchronizationContext.Current)抛出异常并SynchronizationContext.Current在其中包含null值.

c# wpf unity-container mvvm system.reactive

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

匿名事件处理程序和处理

我有一个关于匿名事件处理程序的相当简短的问题:

这是我的代码:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += (o, e) => { RemoveTestControl(ctrl); };
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.SomeEvent -= _Control_SomeEvent;
}
Run Code Online (Sandbox Code Playgroud)

此代码是否正常,或者是否应重写代码以删除Disposed Event Handler?像这样的东西:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += _Control_Disposed;
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.Disposed -= _Control_Disposed;
    ctrl.SomeEvent -= _Control_SomeEvent;
}
Run Code Online (Sandbox Code Playgroud)

c# disposing

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

在PowerShell cmdlet参数中声明get访问器

根据MSDN:

"必须在公共非静态字段或属性上声明参数.应在属性上声明参数.该属性必须具有公共集访问器,如果指定了ValueFromPipeline或ValueFromPipelineByPropertyName关键字,则该属性必须具有公共get访问器."

为什么我必须在我的cmdlet ValueFromPipeline参数中声明get访问器?据我所知,PowerShell只需要将它们的值放入,而不是将它们读出来.谢谢(顺便说一句,我只是好奇这个行为:)).

c# parameters powershell pipeline properties

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