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

我有一个使用后台任务的Windows应用商店应用程序.后台任务存储在Windows运行时组件项目中. (这种结构似乎是使后台任务有效的唯一方法.)在后台任务项目中,我有一些外部可见的公共方法,它们的返回/参数类型是我自己的...

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

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

例如:

public MyClass DoSomething()
{
    return null;
}

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

Method ‘X’ returns ‘Y’, which is not a valid Windows Runtime type. Methods exposed to Windows Runtime must return only Windows Runtime types.

Method ‘T’ has parameter ‘U’ of type ‘W’. ‘W’ is not a valid Windows Runtime parameter type.

我可以理解错误的含义,但我没有想到一个好的方法,我可以构建我的代码,以便我满足这些要求.

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

>将后台任务项目更改为Windows应用商店类库项目.这允许在方法签名中使用非Windows运行时类型,但后台任务不再启动.
>使用便携式类库.这不起作用,因为它无法访问Windows运行时.
>对于值类型,我可以将它们分解为元组或多个参数,但这看起来很混乱,结构化程度较低,维护较少.我坚决反对这种类型的编程.
>对于类,似乎我可能必须在两个应用程序中复制它们的逻辑.这是一个巨大的可维护性问题.

解决方法:

通过隔离Windows组件项目中的后台任务并将可重复使用的Windows运行时相关代码移动到Windows应用商店类库项目中,我能够完成这项工作.

本文标题为:c# – 如何克服Windows运行时类型的Windows组件限制?

基础教程推荐