0

当我尝试为接收消息操作添加自定义类型时,我不断收到此错误:

"Cannot implicitly convert type 'object' to 'type.x.' An explicit conversion exists.

这是我的对象:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestWorkflowService
{
    public abstract class Duck
    {
        public string Name { get; set; }
        public string Type { get; set; }

        public Duck(string name,string type)
        {
            this.Name = name;
            this.Type = type;
        }

        public virtual string Quack()
        {
            return "Quack Quack!";
        }
    }

    public class Mallard : Duck
    {
        public Mallard(string name)
            : base(name, "Mallard")
        {

        }
    }

public class RubberDuck : Duck
    {
        public RubberDuck(string name)
            :base(name, "Rubber Duck")
        {

        }

        public override string Quack()
        {
            return "Squeek Squeek";
        }
    }
}

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

1

我遇到了同样的问题,我发现的解决方法如下:

  • 在 ReceiveRequest 中不要使用 Content Definition 中的任何内容,只需将其留空
  • 在 ReceiveRequest 中使用通用 System.Object。出于某种原因,就我而言,它使设计器中的错误消息消失了。(然后您可以将其转换为所需的类型)
  • 在 ReceiveRequest 而不是“Message”中,使用“Parameters”选项,并且只提供一个参数。对于某些工作,错误消息将消失。 使用参数而不是消息
于 2019-06-02T07:55:40.303 回答
0

啊,.Net 的奥秘

您必须使用“可序列化”对象。

http://msdn.microsoft.com/en-us/library/ee358739.aspx

在此处输入图像描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization;


namespace TestWorkflowService
{
    [Serializable]
    public abstract class Duck
    {
        public string Name { get; set; }
        public string Type { get; set; }

        public Duck(string name,string type)
        {
            this.Name = name;
            this.Type = type;
        }

        public virtual string Quack()
        {
            return "Quack Quack!";
        }
    }
}
于 2013-09-27T18:36:14.253 回答