我正在使用DI容器,我想用容器中解析的实例进行MSTest(VS 2010)单元测试.
我想将这些实例注入我的TestMethod或至少我的TestClass.这可能吗?
现在我的TestMethods直接调用container.Resolve<T>(xxx)
我宁愿避免的,这样我的注射测试更加真实.
有人有这方面的经验吗?
提前致谢.
我有一个WPF视图\视图模型绑定模式,我想通过名称解析Ninject的依赖关系,而不是类型或类型+名称.我想用Ninject命名我的视图模型,然后通过这个名称引用视图中的视图模型进行视图注入(通过Caliburn.Micro).
我意识到在实践中可以使用相同的名称注册多个类型,但我想要一个约定类型模式,并且我愿意接受这种情况.我只需要解决"对象"以使WPF绑定工作.
例如,我有什么方法可以:
我有一个使用WPF\Prism\MVVM开发的应用程序.一切顺利,我有一些令人愉快的MVVM实现.但是,在我的一些视图中,我希望能够绑定应用程序设置,例如,当用户重新加载应用程序时,应该在用户上次使用该应用程序时检查自动滚动网格的复选框.
我的视图需要绑定到保持"自动滚动"设置状态的东西.我可以把它放在视图模型上,但是应用程序设置与视图模型的目的是正交的."自动滚动"设置控制视图的一个方面.此设置只是一个示例.将有相当多的它们和我的视图模型一起使用属性来表示应用程序设置(所以我可以绑定它们)感觉非常令人讨厌.
每个视图的一个视图模型似乎是de rigeuer ...
什么是最好\通常的做法在这里?
为了添加更多上下文,我正在开发一个带有动态选项卡式界面的UI.每个选项卡将托管一个小部件,并且有各种小部件.每个小部件都是各个视图的Prism组合.某些视图在窗口小部件中很常见,例如文件选择器视图.虽然每个窗口小部件由多个视图组成,但概念上,窗口小部件具有一组用户设置,例如,选择了最后一个文件,启用了自动滚动等.当应用程序再次启动时,需要持久保存和检索这些窗口小部件,以及窗口小部件视图重新创建.
我的问题集中在这样一个事实,即概念上一个小部件有一组用户设置,它与一个小部件由许多视图组成的事实直接相关.小部件中的每个视图都有自己的视图模型(它可以很好地和逻辑地工作)但是如果我坚持每个视图的一个视图模型,我将不得不使用用户设置支持的属性来展开每个视图模型(所以我可以数据绑定).
如果我必须使用用户设置属性来展开每个视图模型,则每个视图的单个视图模型听起来不正确.
这是我的问题:
我必须构建一个web服务,接受httppost正文中的纯文本.
我想使用wcf,但看起来wcf只针对xml/json.
有没有人有一个方法可以用来通过http帖子发布纯文本?
请注意,我不能使用soap或将文本包装在xml标签内,我必须遵循某些指导方针才能与现有服务使用者兼容.
提前致谢.
我想知道是否有办法确定托管代码中的CPU缓存大小?
我正在编写一个用于C#中矩阵乘法的Strassen算法,并且想知道我可以在缓存中加入多少矩阵元素来提高计算速度.
场景:我们有一个附加到DataAdapter(datatable)的DataGridView,我们在一个单独的线程中使用(adapter.fill(query,datatable))在datatable中加载数据(使用delegate和beginInvoke),一旦加载了数据,我们附加了数据表到datagridview(在主线程中)
有没有办法可以检查fill()是否仍在执行并取消它.
真实场景:用户点击用户名,相应的数据将加载到数据网格中.有时,用户不耐烦并点击另一个用户(这里我要取消之前的填充并开始新的填充)
更新:我们保留两个DataApdater(和两个DataTables),我们将一个数据表附加到datagridview,并开始异步地将数据加载到另一个数据表.加载数据时,我们只需将datagridview绑定到我们刚刚填充的DataTable(并开始异步加载以前的数据)这样UI将始终获取当前数据(无需用户在UI上等待刷新或挂起)
我想在绑定列表框中使用XML到LINQ解析HTML表和disaply内容.
我正在使用HTML Agility包并使用此代码.
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.SourceURL");
HtmlNode rateNode = doc.DocumentNode.SelectSingleNode("//div[@id='FlightInfo_FlightInfoUpdatePanel']");
string rate = rateNode.InnerText;
this.richTextBox1.Text = rate;
Run Code Online (Sandbox Code Playgroud)
HTML看起来像这样..
<div id="FlightInfo_FlightInfoUpdatePanel">
<table cellspacing="0" cellpadding="0"><tbody>
<tr class="">
<td class="airline"><img src="/images/airline logos/NZ.gif" title="AIR NEW ZEALAND LIMITED. " alt="AIR NEW ZEALAND LIMITED. " /></td>
<td class="flight">NZ8</td>
<td class="codeshare"> </td>
<td class="origin">San Francisco</td>
<td class="date">01 Sep</td>
<td class="time">17:15</td>
<td class="est">18:00</td>
<td class="status">DEPARTED</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
但它正在归还这一点
NZ8 San Francisco01 Sep17:1518:00DEPARTEDAC6103NZ8San Francisco01 Sep17:1518:00DEPARTEDCO6754NZ8San Francisco01 Sep17:1518:00DEPARTEDLH7157NZ8San Francisco01 Sep17:1518:00DEPARTEDUA6754NZ8San Francisco01 Sep17:1518:00DEPARTEDUS5308NZ8San Francisco01 Sep17:1518:00DEPARTEDVS7408NZ8San Francisco01 Sep17:1518:00DEPARTEDEK407 Melbourne/Dubai01 Sep17:5017:50DEPARTEDEK413 Sydney/Dubai01 …
Run Code Online (Sandbox Code Playgroud) 我运行了以下代码,随着时间的推移(一两个小时),我注意到迭代项目需要更长时间.我正在做的事情导致这种情况发生吗?如果是这样我该怎么办呢?
int totalProcessed = 0;
int totalRecords = MyList.Count();
Parallel.ForEach(Partitioner.Create(0, totalRecords), (range, loopState) =>
{
for (int index = range.Item1; index < range.Item2; index++)
{
DoStuff(MyList.ElementAt(index));
Interlocked.Increment(ref totalImported);
if (totalImported % 1000 == 0)
Log(String.Format("Processed {0} of {1} records",totalProcessed, totalRecords));
}
});
public void DoStuff(IEntity entity)
{
foreach (var client in Clients)
{
// Add entity to a db using EF
client.Add(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我有一个只允许异步调用的库,我的代码需要同步.以下代码是否可以正常工作?任何人都可以预见到它的任何问题吗?
RestResponse<T> response = null;
bool executedCallBack = false;
client.ExecuteAsync(request, (RestResponse<T> aSyncResponse)=>{
executedCallBack = true;
response = aSyncResponse;
});
while (!executedCallBack){
Thread.Sleep(100);
}
..continue execution synchronously
Run Code Online (Sandbox Code Playgroud) 大对象堆和GC第3代对象有什么区别?