C# WorkFoundation Services服务在工作流基础中给我一个XAMROBJECWTrrExtRebug异常

C# WorkFoundation Services服务在工作流基础中给我一个XAMROBJECWTrrExtRebug异常,c#,.net,workflow-foundation,workflow-foundation-4,workflow-activity,C#,.net,Workflow Foundation,Workflow Foundation 4,Workflow Activity,对于一个简单的原型,我必须显示一个工作流文件,并显示我们实际执行的步骤 我在这里找到了一个样本: 这几乎满足了我的需要 在此示例中,所有操作从不等待另一个操作。所以我给自己创造了一些非常虚拟的活动: public class WaitForNextCall :NativeActivity { public const String WaitBookmark = "WaitingStep"; #region Overrides of NativeActivity

对于一个简单的原型,我必须显示一个工作流文件,并显示我们实际执行的步骤

我在这里找到了一个样本:

这几乎满足了我的需要

在此示例中,所有操作从不等待另一个操作。所以我给自己创造了一些非常虚拟的活动:

    public class WaitForNextCall :NativeActivity
{
    public const String WaitBookmark = "WaitingStep";


    #region Overrides of NativeActivity

    /// <summary>
    /// When implemented in a derived class, runs the activity’s execution logic.
    /// </summary>
    /// <param name="context">The execution context in which the activity executes.</param>
    protected override void Execute(NativeActivityContext context)
    {
        context.CreateBookmark(WaitBookmark);
    }

    protected override bool CanInduceIdle
    {
        get
        {
            return true;
        }
    }
    #endregion
}
唯一的问题是,我在工作流设计器中只看到“序列”元素

因此,我创建了一个xaml文件,该文件精确地描述了相同的内容,并按如下方式加载:

return ActivityXamlServices.Load("Workflows/WorkflowSample.xaml") as DynamicActivity;
但后来我得到了一个例外:

    System.Xaml.XamlObjectWriterException occurred
  Message=Impossible de créer le type inconnu '{clr-MyTestNameSpace.UserInterface.WorkflowItems}WaitForNextCall'.
  Source=System.Xaml
  LineNumber=0
  LinePosition=0
  StackTrace:
       à System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
       à System.Xaml.XamlWriter.WriteNode(XamlReader reader)
       [...] 
我仔细检查了文件是否存在(如果没有正确指定文件,则可能会出现另一条错误消息)。但是它找不到我的“WaitFornextCall”类,它只在下面几行使用

我有点失望,我试图理解工作流基础是如何工作的,但现在有点困难:(

欢迎提供任何建议

编辑: 我尝试读取该文件,我的构造函数中没有任何异常,但我不知道为什么,我正在使用的一些库(ActiPro)在加载后似乎不再工作:

        XamlReader reader = new XamlXmlReader("Workflows/WorkflowSample.xaml", new XamlXmlReaderSettings(){LocalAssembly =  System.Reflection.Assembly.GetExecutingAssembly()});

        return ActivityXamlServices.Load(reader);
“Workflows/WorkflowSample.xaml”可能是根据以前版本的代码构建的


删除它,重建解决方案,然后重新创建它。

我找到了解决方案

是啊,啊,啊,啊,啊

事实上,问题在于我的工作流与我的自定义活动位于同一个项目中。然后visual studio没有指明设计器可以在哪个程序集中找到此活动,但当您读取文件时,这是一个独立的读取器,它不知道您当前的程序集


因此,有两个不同的项目,一个包含工作流,一个包含活动,然后我的工作流指定可以在其中找到图表的程序集。这样,我可以轻松地执行WorkflowDesigner.Load(“myWorkflowHere.xaml”);没有任何问题!

没有,我创建了它,大约是在我创建了应该加载sample@J4N:您是否删除了它,重新生成了它,然后重新创建了它?这种错误总是由假设引起的。@J4N:问题是序列化程序找不到类型
MyTestNameSpace.UserInterface.WorkflowItems.WaitForNextCall
为什么?它是否存在?它是否在运行时动态加载?它是否不可序列化?或者该异常的InnerException中的问题是否存在?是的,它存在,而不是动态加载,在同一个项目中。我不认为该类是可序列化的,它只是一个创建书签的活动。
        XamlReader reader = new XamlXmlReader("Workflows/WorkflowSample.xaml", new XamlXmlReaderSettings(){LocalAssembly =  System.Reflection.Assembly.GetExecutingAssembly()});

        return ActivityXamlServices.Load(reader);