C#如何强制转换强数据类型?

C#如何强制转换强数据类型?,c#,C#,我希望你们中的一些人能帮我解决这个问题 我有一个类库,其中包含一个复杂的类。此类库用于解决方案中的其他两个项目。1=控制台应用程序,2=Web服务应用程序(网站应用程序) 在控制台应用程序中,我创建了一个ASMXWeb服务引用,它在方法调用中将我的复杂类作为1参数传递 该类的类型为:ScheduleSummaryTransport 在console应用程序中执行此工作的函数需要从类库DLL绑定对象,而不是从web服务引用绑定对象。但是,web服务调用需要类型为。。。从web服务引用 那我该怎么投

我希望你们中的一些人能帮我解决这个问题

我有一个类库,其中包含一个复杂的类。此类库用于解决方案中的其他两个项目。1=控制台应用程序,2=Web服务应用程序(网站应用程序)

在控制台应用程序中,我创建了一个ASMXWeb服务引用,它在方法调用中将我的复杂类作为1参数传递

该类的类型为:ScheduleSummaryTransport

在console应用程序中执行此工作的函数需要从类库DLL绑定对象,而不是从web服务引用绑定对象。但是,web服务调用需要类型为。。。从web服务引用

那我该怎么投

ClassLibrary.ScheduleSummaryTransport->WebService.ScheduleSummaryTransport

我试过:

wsReporting.SendReportSummary( (Reporting.ScheduleSummaryTransport) scheduleSummary);
但在visual studio中,它检测到一个设计时错误:无法强制转换表达式

请帮忙,谢谢

更新

有关完整性,请参阅更多代码:

/// <summary>
        /// Sends the schedule report via email.
        /// </summary>
        /// <param name="scheduleSummary">
        /// The schedule summary.
        /// </param>
        private static void SendScheduleReport(ScheduleSummaryTransport scheduleSummary)
        {
            if (!Convert.ToBoolean(ConfigurationManager.AppSettings["EmailSummary"]))
            {
                return;
            }

            Trace.WriteLine(string.Empty);
            Trace.WriteLine("Sending summary by email... please wait ");

            Reporting.Reporting wsReporting = new Reporting.Reporting { Timeout = -1 };
            wsReporting.SendReportSummary( (Reporting.ScheduleSummaryTransport) scheduleSummary);
            Trace.WriteLine("Done...");
        }
//
///通过电子邮件发送进度报告。
/// 
/// 
///时间表摘要。
/// 
专用静态无效SendScheduleReport(scheduleSummary传输scheduleSummary)
{
如果(!Convert.ToBoolean(ConfigurationManager.AppSettings[“EmailSummary”]))
{
返回;
}
Trace.WriteLine(string.Empty);
Trace.WriteLine(“通过电子邮件发送摘要…请稍候”);
Reporting.Reporting wsReporting=new Reporting.Reporting{Timeout=-1};
wsReporting.SendReportSummary((Reporting.ScheduleSummaryTransport)scheduleSummary);
Trace.WriteLine(“完成…”);
}

如果它们是不相关的类型,则不能在它们之间强制转换。这就像试图从
字符串
转换到
内存流
——您希望发生什么?编译器知道这是行不通的,所以它会阻止您尝试它


这里的问题首先是有多种类型。如果可能的话,避免这样做。如果不能,则需要编写某种转换方法,以便在两种类型之间进行转换。

我仍然不清楚为什么同一个类有两个不同的版本,但如果无法找到引用和使用类库中两个位置的版本,您可能希望签出以处理从一个版本到另一个版本的映射。

WebService代理生成器(wsdl.exe)为您生成一个类,用于保存有关通过WebService传输的对象的所有信息。 此新类与客户端中引用的类冲突

您需要去掉自动生成的类。为此,请在解决方案资源管理器中显示所有文件(顶部的图标)。将有一个类Reference.cs作为Webservice引用的子级,您可以在其中找到自动生成的代码。使用ClassLibrary在此处添加
,并删除与重复类相关的所有代码


为我工作。=)

它们完全是同一个物体。C#控制台从类库DLL获取引用,但是WS方法需要相同的对象,但是引用通过WS代理路由。。。但是在类库中-只有一个对象存在。。。(很抱歉难以解释Jon).@JL-您尝试编辑web服务定义.cs,所以它需要这种类型?听起来更像是一个web服务引用导入问题。@JL:你只是觉得它们是一样的。但在.NET中,类型标识包括声明类型的程序集,因此即使将相同的源文件放入两个项目中,也会创建两种不同且不兼容的类型。@Ben-据我所知,它甚至在两个项目中使用的同一程序集中……但生成代码时的web引用不知道这一点。