2011-09-06 47 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

即使組件的名稱也應該指向由同一個項目生成的程序集? –

相關問題