繁体   English   中英

.NET Core WPF-Application Build Error with dynamic typecast

[英].NET Core WPF-Application Build Error with dynamic typecast

我目前正在尝试使用 Solidworks API 为 Solidworks 创建一个带有 GUI (WPF) 的插件。 我使用 Visual Studio 2019 使用 .net-core 3.1 创建了项目。 这个 API 主要使用返回类型为动态的函数。 我之前将此代码用于控制台应用程序(也使用 .net-core 3.1)而没有收到任何构建错误。

using SW = SldWorks;
using System.Windows;

namespace dfdfdf
{
    public partial class App : Application
    {
        private void App_Startup(object sender, StartupEventArgs e)
        {
            //Connect to SW
            SW.SldWorks SolidWorksApp = null;
            SW.ModelDoc2 swDoc;
            SolidWorksApp = new SldWorks.SldWorks();

            //Connect to Document --> Build Error
            swDoc = SolidWorksApp.ActiveDoc;
        }
    }
}

现在使用 WPF 项目,我收到以下错误:

只有在错误列表中选择“仅构建”时才会显示该错误

CS2066(无法将类型“type1”隐式转换为“type2”。存在显式转换(您是否缺少强制转换?))

“ActiveDoc”具有动态作为返回值,并且使用显式转换可以正常工作:

swDoc = (SW.ModelDoc2) SolidWorksApp.ActiveDoc;

但我想知道为什么这会在 WPF 应用程序中导致错误,但在控制台应用程序中却没有。 据我了解,在转换动态时我根本不应该出现构建错误,因为类型转换是在运行时而不是在构建时完成的。

对于 COM 参考,我激活了“嵌入式互操作类型”选项,是否还有其他我错过的选项会导致这种行为?

If.core 需要明确的演员表,我很好。 我只是希望你们中的一个人能告诉我为什么 wpf 和控制台应用程序之间在这方面存在差异。

谢谢!

查看此视频,但由于存在许多兼容性问题,我强烈建议不要针对 SOLIDWORKS 插件使用 .NET Core/.NET5-6。 使用 .NET Framework 代替加载项,并且可以将 .NET Core 用于独立应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM