12,162
社区成员
发帖
与我相关
我的任务
分享
protected override WorkflowCreationContext OnGetCreationContext(object[] inputs, OperationContext operationContext, Guid instanceId, WorkflowHostingResponseContext responseContext)
{
WorkflowCreationContext creationContext = new WorkflowCreationContext();
if (operationContext.IncomingMessageHeaders.Action.EndsWith("StartWorkflow"))
{
IDictionary<string, object> arguments = (IDictionary<string, object>)inputs[1];
if (arguments != null && arguments.Count > 0)
{
foreach (KeyValuePair<string, object> pair in arguments)
{
if (pair.Value is DTOWrapper)
{
//这句执行Unwrap()时出错
creationContext.WorkflowArguments.Add(pair.Key, (pair.Value as DTOWrapper).Unwrap());
}
else
creationContext.WorkflowArguments.Add(pair.Key, pair.Value);
}
}
}
else
{
new Logger(_connectionString)
.Log((Guid)inputs[0], "Invalid Action: " + operationContext.IncomingMessageHeaders.Action);
}
responseContext.SendResponse(null, null);
return creationContext;
}
[Serializable]
[DataContract]
public class DTOWrapper
{
public DTOWrapper();
public DTOWrapper(object obj);
[DataMember]
public string AssemblyName { get; set; }
[DataMember]
public string Data { get; set; }
[DataMember]
public string DataType { get; set; }
public object Unwrap();
}
<?xml version="1.0" encoding="utf-16"?>
<DonationRequestDto xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Achievo.Service.WorkFlowForm.Contract">
<CreatedBy i:nil="true" />
<CreatedDate i:nil="true" />
<UpdatedBy i:nil="true" />
<UpdatedDate i:nil="true" />
<AmountOfFunding>88</AmountOfFunding>
<Applicant>Administrator</Applicant>
<ApplicantId>2</ApplicantId>
<ApproverIdSearch>0</ApproverIdSearch>
<ApproverNameSearch i:nil="true" />
<ApproverNames i:nil="true" />
<ApprovingStatus i:nil="true" />
<Assistant>Administrator</Assistant>
<AssistantId>2</AssistantId>
<AssoInfo i:nil="true" />
<AuthorId>2</AuthorId>
<Budgeted>false</Budgeted>
<Category>General Donation</Category>
<DD>dd</DD>
<DateOfRequestorOrRecipientRequest>2014-04-28T00:00:00</DateOfRequestorOrRecipientRequest>
<DescriptionOfHowFundWillBeUsed>ddd</DescriptionOfHowFundWillBeUsed>
<DetailedDescriptionOfType>dd</DetailedDescriptionOfType>
<DueDiligencePerformedDate>2014-04-28T16:37:45</DueDiligencePerformedDate>
<EditingStatus>Draft</EditingStatus>
<Explain>false</Explain>
<ExplanationMakingProposedDonation>dd</ExplanationMakingProposedDonation>
<FileDescription>dd</FileDescription>
<FormName>Donation</FormName>
<FromFormId i:nil="true" />
<Id>275</Id>
<IntValueOfEditingStatus>1</IntValueOfEditingStatus>
<Nature>AdministratorGeneral DonationNature1</Nature>
<NatureId>1</NatureId>
<NextDueDiligenceReviewDate>2014-04-28T16:37:45</NextDueDiligenceReviewDate>
<OwnerId>2</OwnerId>
<PostEvent i:nil="true" />
<ProductBrandIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:int>12</d2p1:int>
</ProductBrandIds>
<ProductBrandNames>EMLA brand</ProductBrandNames>
<ProposeEndDateOfSupport>2014-04-28T00:00:00+08:00</ProposeEndDateOfSupport>
<ProposeEndDateOfSupportFrom>0001-01-01T00:00:00</ProposeEndDateOfSupportFrom>
<ProposeEndDateOfSupportTo>2014-04-30T00:00:00</ProposeEndDateOfSupportTo>
<ProposeStartDateOfSupport>2014-04-28T00:00:00+08:00</ProposeStartDateOfSupport>
<ProposeStartDateOfSupportFrom>0001-01-01T00:00:00</ProposeStartDateOfSupportFrom>
<ProposeStartDateOfSupportTo>2014-04-28T00:00:00</ProposeStartDateOfSupportTo>
<RecipientId>2</RecipientId>
<RecipientName>ABM Hong Kong Swatow Baptist Church Community Service Association Limited, The</RecipientName>
<Remarks>dd</Remarks>
<RepresentationOrSuggestion i:nil="true" />
<RequestNo>EG14000037</RequestNo>
<RevisionNo i:nil="true" />
<ShowStatusString i:nil="true" />
<Sort i:nil="true" />
<SortDir i:nil="true" />
<SpecificIfOthers i:nil="true" />
<Status i:nil="true" />
<SubmitDate>2014-04-28T16:37:45.4628144+08:00</SubmitDate>
<SubmitDateFrom>0001-01-01T00:00:00</SubmitDateFrom>
<SubmitDateTo>0001-01-01T00:00:00</SubmitDateTo>
<SupportingFileToAttach />
<Urgent>Normal</Urgent>
<UsedFundDescription i:nil="true" />
<UserId>2</UserId>
<WorkflowInstanceId>0</WorkflowInstanceId>
<WorkflowName>Donation</WorkflowName>
<WorkflowVersionId>41</WorkflowVersionId>
</DonationRequestDto>