2011-09-06 31 views
0

我想实现一个MSDN tutorial创建SharePoint Designer中的活动库,它给我这个错误:ActivityLibrary用于SharePoint Designer中

Namespace1.CreateTaskInListOnSite' does not contain a definition for 'ListName' and no extension method 'ListName' accepting a ... 

与同为AssignedTo和“SiteUrl`。

不应该'AssignedTo','ListName'和'SiteUrl'从SequenceActivity类继承成员?

这里是一个犯了错误被代码:

protected override ActivityExecutionStatus 
Execute(ActivityExecutionContext executionContext) 
{ 
    try 
    { 
     SPSite sitecollection = new SPSite(this.SiteUrl); //here 
     SPWeb web = sitecollection.OpenWeb(); 
     SPUser user = web.Users[this.AssignTo[0].ToString()]; // here 
     SPList list = web.Lists[this.ListName]; // and here 
     SPListItem item = list.Items.Add(); 
     item["Title"] = this.TaskTitle; 
     item["AssignedTo"] = user; 
     item.Update(); 
    } 
    catch (Exception ex) 
    { 
     EventLog.WriteEntry("MSDN Workflow", ex.ToString()); 
    } 
    return ActivityExecutionStatus.Closed; 
} 

这里是.actions文件:

<?xml version="1.0" encoding="utf-8" ?> 

<WorkflowInfo> 
<Actions Sequential="then" Parallel="and"> 
<Action Name="Create Task in List On Site" 
ClassName="Namespace1.CreateTaskInListOnSite" 
Assembly="CustomWorkflowActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a3170baa21b0a3e9" 
AppliesTo="all" Category="Cross Site Actions"> 
    <RuleDesigner 
    Sentence="Create task titled %1 for %2 on site %3 in 
      list %4"> 
    <FieldBind Field="TaskTitle" DesignerType="TextArea" 
     Id="1"/> 
    <FieldBind Field="AssignTo" DesignerType="Person" 
     Text="this user" Id="2"/> 
    <FieldBind Field="SiteUrl" DesignerType="TextArea" Id="3"/> 
    <FieldBind Field="ListName" DesignerType="TextArea" Id="4"/> 
    </RuleDesigner> 
    <Parameters> 
    <Parameter Name="TaskTitle" Type="System.String, mscorlib" 
     Direction="In" /> 
    <Parameter Name="AssignTo" Type="System.String, mscorlib" 
     Direction="In" /> 
    <Parameter Name="SiteUrl" Type="System.String, mscorlib" 
     Direction="In" /> 
    <Parameter Name="ListName" Type="System.String, mscorlib" 
     Direction="In" /> 
    </Parameters> 
</Action> 

+0

你也可以显示.ACTIONS文件吗? –

+0

@Philipp帖子已更新。 –

回答

0

的.ACTIONS文件调用类名MSDN .HowTo.CreateTaskInListOnSite,在你的代码文件中,你似乎使用th e命名空间命名空间1。两者必须匹配。

因此,无论你改变.ACTIONS这样:

<Action Name="Create Task in List On Site" 
ClassName="MSDN.HowTo.CreateTaskInListOnSite" .... /> 

或更改命名空间定义在你的代码文件MSDN.HowTo。

程序集属性值也必须是正确的。您可以使用sn.exe tool来检索装配的公钥标记。

+0

已更新代码和帖子中的命名空间,同样的问题,Assembly属性如何? –

+0

您可以使用SN工具获取组件的公钥设置。 –

+0

即使组件的名称也应该指向由同一个项目生成的程序集? –

相关问题