首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WF 4.5工作流服务接收消息“无法隐式地将类型'object‘转换为’type.x‘。存在显式转换

WF 4.5工作流服务接收消息“无法隐式地将类型'object‘转换为’type.x‘。存在显式转换
EN

Stack Overflow用户
提问于 2013-09-28 02:12:55
回答 2查看 639关注 0票数 0

当我尝试为接收消息操作添加自定义类型时,我一直收到以下错误:

代码语言:javascript
复制
"Cannot implicitly convert type 'object' to 'type.x.' An explicit conversion exists.

这是我的对象:

代码语言:javascript
复制
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";
        }
    }
}

EN

回答 2

Stack Overflow用户

发布于 2019-06-02 15:55:40

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

ReceiveRequest中的

  • 不使用内容定义中的任何内容,只需将其保留为空,ReceiveRequest中的

  • 将使用通用System.Object。出于某种原因,在我的例子中,它使得设计器中的错误消息消失了。(然后您可以将其转换为所需的类型)

  • 在ReceiveRequest中使用"Parameters“选项,而不是”ReceiveRequest“,并且只提供一个参数。对于某些原因,它可以工作,错误消息将消失。

票数 1
EN

Stack Overflow用户

发布于 2013-09-28 02:36:14

啊,.Net的奥秘

你必须使用“Serializable”对象。

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

代码语言:javascript
复制
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!";
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19057438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档