使用VS进行工作流开发系列博客6-Developing Workflows in VS: Part 5 - Code Your Workflow
2008-11-25 10:24 Virus-BeautyCode 阅读(659) 评论(0) 编辑 收藏 举报在VS中开发工作流:编码你的工作流
原文地址:
http://blogs.msdn.com/sharepoint/archive/2006/11/28/developing-workflows-in-vs-part-5-code-your-workflow.aspx
有了合适的数据,有了工作流的逻辑。它是简单易懂的,但是还是有一些容易出错的地方你应该注意。
1、忘记给自定义的类添加可序列化特性attribute
当你为工作流创建自定义的类的时候,不要忘记添加Serializable可序列化特性。如果你没有这么做的话,而是在工作流范围内定义了一个类变量,当设置工作流睡觉和序列化类的时候工作流会运行失败。如果你注意到工作流好象是完成了,这有可能就是错误的。
2、在反持久化之后重新使用不能序列化的SharePoint对象
很多非工作流的SharePoint对象,例如SPlistItem,都是不可以序列化的,因此当工作流被持久化的时候,这些项目将变得无效。如果你视图在工作流激活的时候去使用他们,你将得到一个错误。为了避免这些,工作流反持久化之后你再使用他们。
3、更新锁定项
如果一个文档处于打开或者锁定状态更新文档将会抛出异常。如果你需要工作流在这时候写内容到一个栏的话,你可以尝试1)在锁定打开的时候再执行更新操作。或者2)使用item.SystemUpdate()来烧断锁定。记住在使用第二种方法的时候,打开文档的用户在保存文档的时候将会忽略工作流做的改变。
FAQ:如何开发工作流的自定义状态
SharePoint中的SetState活动就是来做这些的,详细情况可以查看WSS SDK。
下一个章节:部署和调试工作流
谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构