我正在准备一个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作为参数存根方法调用吗?或者我应该以另一种方式解决这个问题?
我试图将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) 我意识到这是一个非常普遍的问题,但我想知道在相当大的企业系统中使用WF禁止命令代码实现业务逻辑对性能的影响.我想听听其他人在这方面的经验.
在.NET中构建REST Web服务时,将System.ArgumentNullException和System.ArgumentException映射到HTTP状态代码的最"RESTful"方式是什么?我的第一个猜测是使用HTTP 400/Bad Request和适当的描述.
将异常映射到HTTP状态代码时,建议的最佳做法是什么?
我们有TFS2010和单个解决方案,有近200个项目(是的,我知道,不好主意,不是我的!).我在4核(8超)机器上的构建时间从大约30秒开始,从4分钟顺序完成,通过解耦代码来实现高水平的构建并发性.我现在想在构建服务器上获得它的好处,这必须是可能的,因为MSBuild支持并行构建.怎么样?
我的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)
是否有类似的方法使用主键提取?
我有一个看起来像这样的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值.
我有一个关于匿名事件处理程序的相当简短的问题:
这是我的代码:
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) 根据MSDN:
"必须在公共非静态字段或属性上声明参数.应在属性上声明参数.该属性必须具有公共集访问器,如果指定了ValueFromPipeline或ValueFromPipelineByPropertyName关键字,则该属性必须具有公共get访问器."
为什么我必须在我的cmdlet ValueFromPipeline参数中声明get访问器?据我所知,PowerShell只需要将它们的值放入,而不是将它们读出来.谢谢(顺便说一句,我只是好奇这个行为:)).
c# ×6
.net ×2
testing ×2
ado.net ×1
autofixture ×1
compare ×1
compilation ×1
datatable ×1
disposing ×1
http ×1
mocking ×1
moq ×1
msbuild ×1
mvvm ×1
parameters ×1
performance ×1
pipeline ×1
powershell ×1
primary-key ×1
properties ×1
rest ×1
tfs2010 ×1
vb.net ×1
vb6 ×1
wcf ×1
workflow ×1
wpf ×1