在Workflow Foundation InArgument <string> </string>中使用反斜杠时出错

时间:2015-02-24 19:10:35

标签: c# wcf workflow-foundation-4

我们的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转换。

我们缺少一个简单的解决方案吗?

0 个答案:

没有答案