如何在execute方法中执行函数调用?

时间:2015-04-02 08:58:28

标签: .net sharepoint sharepoint-2010

我正在从Active Directory将用户详细信息检索到SharePoint。

我想在我的公共覆盖void Execute(Guid targetInstanceId)方法中调用这两个以下函数,但我已经尝试了很多但仍然无法弄明白。

public static IList<LdapUser> GetUsersFromActiveDirectory(string connectionString)
    {
        some codes here
    }



public void SaveActiveDirectoryUsersToSharePointList(IList<LdapUser> ldapUsers)
    {
        some codes here
    }

我想进行函数调用,以便它可以显示从Active Directory到SharePoint List [LDAPUsers]的用户详细信息。

以下代码不正确。 它向我展示了SPListItem有一些无效的参数。 我理解发生了无效参数的问题,但是我无法想出任何其他方式来执行函数调用。或者我不应该在SPListItem中做到这一点?

public override void Execute(Guid targetInstanceId) 
    {
        SPWebApplication webApp = this.Parent as SPWebApplication;
        SPList taskList = webApp.Sites[0].RootWeb.Lists["LDAPUsers"];
        SPListItem newTask = taskList.Items.Add(SaveActiveDirectoryUsersToSharePointList(GetUsersFromActiveDirectory(connectionString)));
        newTask.Update();
    }

1 个答案:

答案 0 :(得分:0)

(不知道你在函数中实际做了什么,这在我认为无关紧要)你的代码试图将SPListItem对象设置为等于SPList对象,这是无法完成的。可以删除“SPListItem newTask =”并运行方法taskList.Items.Add(然后传入该项所需的任何参数)。

This MSDN文章提供了创建单个列表项的完整方法。

无论你的自定义函数在做什么,你都可以

1)将您的数据查询到某种列表或数组(就像您使用GetUsersFromActiveDirectory一样)

2)访问SP列表项集合/ SP列表(就像您对taskList所做的那样)

3)从步骤1循环遍历列表/数组,  a)创建一个新的列表项  b)将列表/数组中的各个数据列映射到项的值(即newTask [“Title”] = TextBox2.Title)  c)将列表项添加到列表集合/列表

4)将值添加/提交到列表(即通过.update()单独或作为一组)