我需要访问在激活SharePoint Workflow时实例化的对象列表。
private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e)
{
string json = @"[
{
'StateID': 1,
'Title': 'State One'
},
{
'StateID': 2,
'Title': 'State Two'
}
]";
Json j = new Json();
List<State> states = JsonConvert.DeserializeObject<List<State>>(json);
}
当我通过类似以下方式更改工作流程的另一个步骤时,我需要能够访问列表:
private void StateOneTask_MethodInvoking(object sender, EventArgs e)
{
try
{
StateOneTask_TaskId = Guid.NewGuid();
StateOneTask_ContentTypeId = TaskContentType;
createStateOneTask.TaskProperties = new SPWorkflowTaskProperties();
createStateOneTask.TaskProperties.Title = states[0].Title;
...
}
}
我目前无法访问列表,因为它是在私有方法中。我该怎么办?
答案 0 :(得分:1)
如果您只是创建一个实例var怎么办?
class YourClass {
private List<State> states;
private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e)
{
string json = @"[
{
'StateID': 1,
'Title': 'State One'
},
{
'StateID': 2,
'Title': 'State Two'
}
]";
Json j = new Json();
states = JsonConvert.DeserializeObject<List<State>>(json);
}
}
答案 1 :(得分:0)
您的states变量是在堆栈中创建的,仅存在于onWorkflowActivated_Invoked事件范围中。一旦方法完成,变量就不再存在。作为一种解决方案,我建议您将此变量定义移出事件范围。 您可以在此处详细了解:http://www.albahari.com/valuevsreftypes.aspx