如何在TFS中反序列化和序列化构建过程参数
我正在尝试使用TFS 2013 API创建新的构建定义。 我必须引用的流程模板包含几个自定义活动和参数。 在创建构建定义时,需要动态更新某些属性值。 所以我尝试使用下面的代码反序列化过程参数:
IDictionary processParams = WorkflowHelpers.DeserializeProcessParameters(defaultTemplate.Parameters);
此代码总是抛出以下exception:
An unhandled exception of type 'System.Xaml.XamlObjectWriterException' occurred in System.Xaml.dll Additional information: No matching constructor found on type 'System.Activities.Activity'. You can use the Arguments or FactoryMethod directives to construct this type.
这真是令人沮丧,我无法摆脱这个错误。
我还尝试使用以下代码反序列化过程参数:
using (StringReader stringReader = new StringReader(parameterValues)) { object obj = XamlServices.Load( ActivityXamlServices.CreateReader( new XamlXmlReader((TextReader)stringReader, new XamlXmlReaderSettings { LocalAssembly = System.Reflection.Assembly.GetExecutingAssembly() } ))); }
这有效,但当我使用XamlServices.Save(XamlWriter writer, object instance)
方法再次序列化时,参数发生了变化,这与构建工作流程不兼容。
那么,我如何更新构建过程参数呢? WorkflowHelpers
类可以以其他方式使用吗? 或者是否有任何其他方法来更新流程参数,以便它反映在构建定义中。 任何帮助都非常感谢。
现在工作正常。 以下是新代码:
IDictionary processParams = WorkflowHelpers.DeserializeProcessParameters(defaultTemplate.ProcessParameters);
我需要传递defaultTemplate.ProcessParameters
,而不是defaultTemplate.ProcessParameters
上述就是C#学习教程:如何在TFS中反序列化和序列化构建过程参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1024592.html