网络 > csharp AOT中的XML序列化

2025-04-02

玩具项目引入序列化后,开始体会到CSharp的AOT的蛋疼了。所以也明白CSharp之父做的TSChekcer为啥要用golang不用csharp了。

两门语言对待AOT的优先级上的确不同,CSharp的AOT只是能用,绝对不是优势。

实现,CSharp开启AOT后,反射的功能就开始受限,这对于序列化的影响很大,解决方案是必须显示的指定可能用到的类。

第一个会出现的错误是,报找不到空参数构造函数。

 ---> System.InvalidOperationException: HellMapManager.Models.Map cannot be serialized because it does not have a parameterless constructor.

本质是因为没有指定可能使用的类型(以及子类中可能没指定)。

需要引入

using System.Diagnostics.CodeAnalysis;

然后在类定义中显示的指明

public partial class Map

{

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Map))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(MapInfo))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Alias))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Room))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Exit))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Route))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Variable))]

    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Landmark))]

然后可能遇到的问题是提示

 ---> System.InvalidOperationException: You must implement a default accessor on System.Collections.Generic.List`1[[HellMapManager.Models.Room, HellMapManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] because it inherits from ICollection.

这是需要在使用XML元素的地方显式指定类型

    [XmlArray(ElementName = "Rooms")]

    [XmlArrayItem(typeof(Room))]

    public List<Room> Rooms { get; set; } = [];

继续写,继续踩坑。

 

网络 > 试了下cf的saas功能

2024-07-23

挺,好玩的。

总的来说,cf提供一个反代服务,通过这个反代服务可以让不托管在cf的域名也能享受cf的cdn/waf。还能玩玩优选ip啥的。

好像每天有10w次的限额。

这就很大善人……

网络 > 尝试申请的商标被驳回了

2024-06-17

通过阿里云申请的。价格低,基本就是和管局费用差不多。本身就是做个尝试。

看了驳回理由,基本上确认了这个赚钱的套路。

驳回理由是和一个其他完全不象的商标冲突。

申请的时候其实需要细化很多东西,包括不要随便用黑白图片(查看冲突的商标是彩色而非黑白的)。

需要大量文字描述商标的含义和别人做区分。

然后没经验的几乎一定被拒,然后已经花了半年了,不在15天驳回复查期间花钱买服务的话就要重走流程的话代价太高了。

我不一样,我就是玩玩,这个logo时间差了觉得还是有大大小小的毛病……

网络 > ios app发布感受

2024-06-08

终于把app发布出来了。

apple developer program莫名其妙卡了我小半年是我没想到的……

成本的话

年费688

整了个最低配m2 mac mima 3000

费用还不低。

剩下的就是发布时需要一个支持网站信息,搞个域名和服务器成本就行。

毕竟app备案也需要用

app备案大概花了我2周。不过app和网站不完全一样,所以app备案感觉上没网站备案这么蛋疼。

然后就是必须要有一个真机设备的uuid,截图只类可以直接上模拟器。

总体来说,个人觉得,ios是渣,但apple store真的很神。

它的确应该能很方便的为普通开发者赚到钱。

只是很可惜,现在已经不是收费app的年代了

广告app和在线订阅,对于独立开发者的冲击不是一般的大。

所以,这口饭,也不是那么好吃的了吧……

网络 > 试用了下飞书

2024-03-19

总体来说,对比竞品,主要是企业微信,还是非常不错的。

准备再用一段时间感受感受是否有坑。

网络 > 华为手机,使用Aurora store安装google play的app

2022-02-10

昨天想装github的手机版,各大国内市场没有,装了个Aurora store安装了

https://auroraoss.com/

看描述的原理是使用匿名google account进行下载。

先试试安全性如何

 

 

网络 > certbot还是比acme.sh好用

2022-01-06

其实已经发现几次了。

今天一张le更新的证书快过期了

火线升级

最后还是certbot一键搞定。

除了通配符域名还没用certbot搞过。

其他地方,似乎的确是certbot好用点。

亲儿子可能的确有亲儿子的优势吧。

网络 > [记录]aliyun vpc的坑

2021-02-25

今天给一台阿里云服务器换了vpc,踩了点坑

表现为网站无法打开,vnc链接后服务器无网络

总结如下

  1. 切换vpc需要改ecs的网络配置
  2. ecs的网络配置,用dhcp未必起效
  3. 手工设置ecs的网络配置时,可能需要设置网关
  4. 网关地址没找到说明,我是把网段最后几个保留ip按个ping,再倒数第三个能ping同,然后设为网关,通了。

另外吐槽下,阿里云的工单改版。

不能直接提交工单,出来个伪对话框,普通工单120分钟内回复,紧急工单90分钟内回复,付钱10分钟内回复。

很好,很强大。

网络 > 腾讯企业邮箱开始不干人事了

2021-02-19

收到了腾讯企业邮箱的邮件

贵公司正在使用基础版的企业邮箱,目前有 5 个成员使用容量已超过普通帐号的 2G 上限,当前为超容使用中。建议将贵公司的企业邮箱升级到专业版,并把这些成员账号升级为VIP账号,即可不受容量限制。同时,专业版提供更多便捷管理功能,让工作更高效。了解专业版及VIP账号 注意:5天后,若邮箱账号未及时升级到VIP账号,2月24日起,这些账号容量将降级为标准容量。超出容量限制的邮箱账号将无法收到新的邮件,请提醒成员及时清理历史邮件,以免影响邮箱的正常使用。

无力吐槽。

啥玩意?

你要收费正常,之前的用户你觉得给的容量太多也正常。

但提前一周不到给个这个邮件?

这是准备做商业客户的态度?

你微盘送的免费空间吃了吐也就算了。

做对公业务的,早点提醒会死么?

但凡遇到个付款要审批的,怎么搞?

网络 > 阿里云cdn全站加速无法缓存图片的解决

2020-12-31

部分php生成的图片无法缓存,响应头永远是 x-cache: MISS TCP_MISS dirn:-2:-2

x-cache:

MISS TCP_MISS dirn:-2:-2
x-cache:

MISS TCP_MISS dirn:-2:-2

经过测试,需要设置缓存过期时间,并移除掉 Pragma 响应头


apache为例

Header unset Pragma

为什么这种特性在文档没有……

奇葩……