assembly 类库中的MessageBoxResult

z2acfund  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(95)

你好
我正在创建一个类库,有一个一般性的问题:即使默认情况下包含了标准名称空间,但该名称空间的属性怎么会丢失呢?
具体来说,它是关于Windows.System命名空间的。
我想在我的程序集中实现一个方法,该方法返回的属性类型为:MessageBoxResult作为结果。
但是,VisualStudio无法识别Type:MessageBoxResult!

Error: IDE1007: The name "System.Windows.MessageBoxResult" does not exist in the current context

字符串
如何将System.Windows枚举集成到程序集中?
我目前使用我自己的枚举,它与System. Windows一起使用。MessageBoxResult是相同的(但不是很好)。

public enum MessageBoxResult
{
     None = 0, //The message box returns no result.
     OK = 1, // The result value of the message box is OK.
     Cancel = 2, // The result value of the message box is Cancel.
     Yes = 6, // The result value of the message box is Yes.
     No = 7 // The result value of the message box is No.
}

vuktfyat

vuktfyat1#

System.Windows.MessageBoxResult枚举是WPF(WindowsPresentationFoundation)框架的一部分,它可能不适用于每个项目类型。如果你正在创建一个.NET标准或.NET核心类库,那么你将无法访问特定于WPF的类型,如MessageBoxResult。
为了能够在类库中使用MessageBoxResult,需要确保库面向适当的框架。如果使用Visual Studio,则可以在“项目属性”窗口中更改项目的目标框架。如果您使用的是.NET Framework类库,则应该能够使用MessageBoxResult。
如果您不能修改目标框架,并且仍然需要使用类似MessageBoxResult的东西,那么您可以使用自定义枚举进行维护。如果您在WPF应用程序中使用它,则可以将其Map到实际的MessageBoxResult。
如果您正在开发一个应该跨多种类型的应用程序(如.NET Framework,.NET Core等)使用的库,那么保持它独立于任何UI特定类型是一个很好的做法。这意味着您需要使用自己的自定义枚举,或者找到另一种不使用MessageBoxResult实现目标的方法。
要在类库中管理消息框和类似的UI元素,最好采用事件或回调来让调用应用程序确定如何显示消息框。这样,库就不需要知道MessageBoxResult,并且可以在任何类型的应用程序中使用它,而不管它是用什么框架构建的。

相关问题