2
我正嘗試使用TFS 2013 API創建新的構建定義。我必須參考的流程模板包含幾個自定義活動和參數。在創建構建定義時,需要動態更新某些屬性值。於是,我就反序列化使用下面的代碼的工藝參數:如何在TFS中反序列化和序列化構建過程參數
IDictionary<string, object> processParams = WorkflowHelpers.DeserializeProcessParameters(defaultTemplate.Parameters);
該代碼總是拋出異常如下:
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
類可以以其他方式使用嗎?或者還有其他方式來更新流程參數,以便它能夠反映在構建定義中。任何幫助,高度讚賞。