如何克服Windows组件对Windows运行时类型的限制?

本文关键字:Windows 类型 运行时 组件 何克服 克服 | 更新日期: 2023-09-27 18:02:01

我有一个使用后台任务的Windows Store应用程序。后台任务存储在Windows运行时组件项目中。(这个结构似乎是使后台任务工作的唯一方法。)

在后台任务项目中,我有一些外部可见的公共方法,它们的返回/参数类型是我自己的类,而不是Windows运行时类。

例如:

public MyClass DoSomething()
{
    return null;
}

当我构建时,我收到以下与这些方法相关的错误:

方法'X'返回'Y',这不是一个有效的Windows运行时类型。暴露给Windows运行时的方法必须只返回Windows运行时类型。

方法'T'具有类型为'W'的参数'U'。'W'不是一个有效的Windows运行时参数类型。

我能理解错误在说什么,但我还没有想到一个好的方法来构建我的代码,使我满足这些要求。

以下是我已经考虑过的一些事情:

    将后台任务项目更改为Windows Store类库项目。这允许在方法签名中使用非windows运行时类型,但后台任务不再启动。
  1. 使用可移植类库。这没有工作,因为它没有访问Windows运行时。
  2. 对于值类型,我可以将它们分解为Tuple或多个参数,但这似乎很混乱,缺乏结构化和可维护性。我强烈反对这种编程方式。
  3. 对于类,似乎我必须在两个应用程序中复制它们的逻辑。这是一个巨大的可维护性问题。

如何克服Windows组件对Windows运行时类型的限制?

我可以通过在Windows组件项目中隔离后台任务,并将可重用的Windows运行时相关代码移动到Windows Store类库项目中来完成这项工作。

相关文章: