使用客户端对象模型从SP列表中获取列表项及其属性的最佳方法是什么?
这是我正在使用的代码.
string server = "http://localhost";
ClientContext context = new ClientContext(server);
Web web = context.Web;
var spList = web.Lists.GetByTitle("Contact");
CamlQuery query = new CamlQuery();
var items = spList.GetItems(query);
context.Load(items,
itema => itema.Include(
item => item,
item => item["CustomerId"]));
context.ExecuteQuery();
Console.WriteLine("Items");
foreach (var item in items.ToList())
{
context.Load(item);
}
context.ExecuteQuery();
foreach (var item in items)
{
foreach (var a in item.FieldValues)
{
Console.WriteLine(a.Key + ":" + a.Value.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我想删除用于在上下文中加载列表项的单个内联foreach,如果可能,在第一个执行查询本身中加载项字段值.
我尝试使用以下内容
context.Load(items,
itema => itema.Include(
item => item,
item=> item.FieldValues,
item …Run Code Online (Sandbox Code Playgroud) 我有运行的c#应用程序,然后在某些时候应用程序抛出一个错误然后被捕获,然后app应该结束.它结束了,但控制台窗口保持打开状态......
我甚至签入windows task manager,在applicationstab 下,列出了我的控制台,但是当我点击时go to process,没有该应用程序的进程.
这很奇怪......应用程序结束,进程结束,但控制台仍然存在?我怎么能杀掉那个控制台?
编辑:我的代码:
static class Program
{
static void Main()
{
try
{
//bunch of static methods from other static classes are being invoked
Setup.Driver.Close();//another static method
}
catch (Exception)
{
Setup.Driver.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二次编辑:注意:Process.Getprocess().Kill(),Application.Exit(),Environment.Exit()对我不起作用,在windows任务管理器中,没有进程可以杀死,只有控制台保持打开状态!