我有一个使用后台任务的 Windows 应用商店应用程序。后台任务存储在 Windows 运行时组件项目中。(这种结构似乎是使后台任务工作的唯一方法。)
在后台任务项目中,我有一些外部可见的公共方法,它们的返回/参数类型是我自己的类而不是 Windows 运行时类。
例如:
public MyClass DoSomething()
{
return null;
}
构建时,我收到与这些方法相关的以下错误:
方法“X”返回“Y”,它不是有效的 Windows 运行时类型。向 Windows 运行时公开的方法必须仅返回 Windows 运行时类型。
和
方法“T”具有“W”类型的参数“U”。“W”不是有效的 Windows 运行时参数类型。
我可以理解错误在说什么,但是我还没有想到一种可以构建代码以满足这些要求的好方法。
以下是我已经考虑过的一些事情:
- 将后台任务项目更改为 Windows 应用商店类库项目。这允许在方法签名中使用非 Windows 运行时类型,但不再启动后台任务。
- 使用可移植类库。这不起作用,因为它无权访问 Windows 运行时。
- 对于值类型,我可以将它们分解为
Tuple
s 或多个参数,但这看起来很杂乱,结构较少且可维护性较差。我强烈反对这种类型的编程。 - 对于类,似乎我可能不得不在两个应用程序中复制它们的逻辑。这是一个巨大的可维护性问题。