我有一个使用后台任务的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组件限制?


基础教程推荐
- C# 解析XML和反序列化的示例 2023-04-14
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- 实例详解C#实现http不同方法的请求 2022-12-26
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- Unity shader实现高斯模糊效果 2023-01-16
- C#中 Json 序列化去掉null值的方法 2022-11-18
- C#中的Linq to JSON操作详解 2023-06-08