为什么隐式转换需要“inbetween”汇编?

时间:2017-04-27 08:39:42

标签: c# assemblies implicit-conversion build-dependencies

我有两个项目,项目A 是WPF应用程序,项目B 是WPF控件库。

项目A 引用默认的WPF内容。但不是System.Windows.Controls.Ribbon

项目B 定义了一个类MainWindow,它继承自RibbonWindow汇编中的System.Windows.Controls.Ribbon

在App.xaml.cs内部我将Current.MainWindow实例设置为项目B的MainWindow

Current.MainWindow = factory.CreateMainWindow(); // Returns of type `MainWindow`

这会导致以下构建错误:

CS0012 :类型“RibbonWindow”在未引用的程序集中定义。您必须添加对程序集'System.Windows.Controls.Ribbon,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。

CS0029 :无法将类型'MyNamespace.MainWindow'隐式转换为'System.Windows.Window'

  

可以从项目A

引用System.Windows.Controls.Ribbon来解决

如您所见,MainWindowRibbonWindow,是WindowCurrent.MainWindow需要设置WindowMainWindow返回的factory.CreateMainWindow()将被隐式转换为Window

为什么隐式转换需要引用所有类型之间的汇编?

0 个答案:

没有答案