我们的Workflow Foundation服务使用字符串参数将XML传递到服务中。
public InArgument<string> XMLPayload {get; set;}
我们正在使用此InArgument
在CodeActivity中构建一个局部变量:
public sealed class OurService: CodeActivity
{
public InArgument<string> XMLPayload {get; set;}
protected override void Execute(CodeActivityContext context)
{
var xmlPayload= XMLPayload.Get(context);
//Rest of Our Code
}
}
当我们提交未转义的\
时会出现问题。
使用:
<test>this is \\ a test</test>
不起作用
<test>this is \ a test</test>
在null
xmlPayload
我们正在使用XmlSerializer
序列化我们的对象,并且在将它们传递给工作流之前将它们设置为字符串没有问题。
我们将字符串通过ServiceReference
传递给WF服务。
我们的假设是InArgument<string>
初始化程序无法处理文字有效负载。
我们尝试了什么:
我们已经找到了在\
中自动转义XMLSerializer
的方法以及自定义InArgument
的方法,但都没有成功。
我们目前正在转发\
,但这实际上导致了xmlPayload
问题不仅仅是XML问题。传递给具有反斜杠的工作流的任何字符串都无法通过InArgument
转换。
我们缺少一个简单的解决方案吗?