Csharp/C#教程:是否可以使用编译时检查类型是否使用Serializable属性进行标记分享


是否可以使用编译时检查类型是否使用Serializable属性进行标记

具体来说,我们使我们的应用程序与Out Of Process会话状态服务器兼容,其中会话中保存的所有类型都必须是可序列化的。

有没有办法在编译时看到放入HttpSessionState的任何类型都标有Seri​​alizable属性。 这个“无效”代码的一些东西

public static void Put( string key, T value ) where T : IsMarkedWitheSerializableAttribute { HttpContext.Current.Session[key] = value; } 

您可以编写自定义FxCop规则以生成此方案的警告。

Jason Block在他的网站上有一个示例规则。

不,没有像这样的通用约束。 属性通常用于表示某种类型的实现 。 您必须要么引入自己的标记接口(urgh)或插入执行时检查,并希望您的测试足够。

Eric Lippert关于属性和属性的post很适合在这里阅读。 这不是一个相同的问题,因为它更多地讨论了对象与类型,但它仍然与表达机制的属性相关。

上述就是C#学习教程:是否可以使用编译时检查类型是否使用Serializable属性进行标记分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/960220.html

(0)
上一篇 2021年11月24日
下一篇 2021年11月24日

精彩推荐