- 博客(6)
- 收藏
- 关注
原创 C# 源生成器 - 简单示例
以上示例只是简单展示源代码生成器基本运作逻辑,其实对于代码生成,有更清晰的语法,就像下面这张图演示的对于接口的定义,这更严谨、易于阅读和维护,不过熟悉这些API是要花费很多精力的,目前不借助AI我反正没法像这张图一样用API生成代码。从这些节点中,可以获取例如 :原始类引用的所有命名空间、原始类的修饰符、原始类的名称、原始类是否包含指定的特性、原始类是否继承指定类、是否实现指定接口……这个项目探索了如何使用极为简洁的C#代码构建WPF中的前端效果,是的,你没看错,用C#写前端!
2025-02-19 20:51:52
804
原创 使项目同时兼容.NET和.NET Framework
解释一下,上面这个例子中的【AspectOrientedAttribute】特性用于标记那些支持面向切面编程的目标,【Code Analizer】会在编译开始前分析项目中标注了此特性的地方,【Source Generator】会生成一部分源代码以实现这个特性。有关于性能等方面的优化是由【运行时】决定的,例如.NET8相较于.NET6对于线程池做了大幅优化,但是你在.NET6中编写的异步操作不需要为.NET8打包一份,同样的编译结果跑在不同的运行时下效果不同。<Reference> 添加全局引用。
2025-02-19 19:41:05
417
原创 WPF 使用 [ 源生成 ] 加速 DynamicTheme 构建
【Constructor】按形参列表分组,自动生成类的构造函数,且在构造器内部调用此方法【Observable】自动生成字段对应属性,CanHover:true代表属性具备悬停效果,此类字段必须具 备初始值,且初始值的构建不可以简写,例如【new Thickness(0)】而非【new(0)】【OnThemeChange】是自动生成的partial方法,用于控制主题切换前后逻辑【Dark/Light】实现IThemeAttribute接口,可用于标记属性在不同主题下对应的value。
2025-01-03 12:08:02
842
原创 C# 实现AOP(面向切面编程),以拦截属性setter/getter或方法调用(原生实现)
C#实现AOP编程,拦截方法调取,实现动态扩展/覆写
2024-10-31 18:00:56
879
1
原创 Visual Studio 2022 将类库项目上传至NuGet
文章介绍了如何在Visual Studio 2022中,上传类库项目至NuGet
2024-05-12 17:42:10
1053
1
原创 WPF如何注册全局热键?几句话就能搞定!
【FastHotKeyForWPF库】是一款加速WPF制作全局热键的类库,旨在几句函数调用就能实现热键的注册、删除、修改
2024-05-12 14:58:28
1411
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人