2014-02-17 67 views
0

我正在使用可以查詢一組數據以及使用名爲VersionOne的寧靜Web服務更新數據的SDK。我們使用Web服務來記錄QA測試。每個測試都具有「名稱」,「狀態」等屬性。除「狀態」外,大多數屬性都已成功更新。無法將新值分配給只讀屬性

下面是我調用的方法,當我逐步執行代碼時,我可以獲取舊值,但無法按預期更改屬性值。一個錯誤,指出「無法將新值分配給只讀屬性」。

public bool TestInProgress() 
    { 
     var testId = Oid.FromToken("Test:26017", _context.MetaModel); 
     var query = new Query(testId); 
     var assetType = _context.MetaModel.GetAssetType("Test"); 
     var testStatus = assetType.GetAttributeDefinition("Status.Name"); 

     query.Selection.Add(testStatus); 
     var result = _context.Services.Retrieve(query); 
     var test = result.Assets[0]; 
     var oldResult = GetValue(test.GetAttribute(testStatus).Value); 
     test.SetAttributeValue(testStatus, "Failed"); 
     _context.Services.Save(test); 

     LogResult(test.Oid.Token, oldResult, GetValue(test.GetAttribute(testStatus).Value)); 
     Console.WriteLine(test.Oid.Token, oldResult, GetValue(test.GetAttribute(testStatus).Value)); 

     return true; 

    } 

https://github.com/versionone/VersionOne.SDK.Net.APIClient#attribute-definition

根據它看起來好像「只讀」,是一個屬性VersionOne的SDK文檔。我查看了幾個不同的測試和測試集的不同屬性,但沒有看到它。我的身份驗證正確,並已成功更新其他屬性,並使用許多不同的測試。但是,當我嘗試以編程方式更改「狀態」屬性時,它說它是隻讀的。

https://github.com/versionone/VersionOne.SDK.Net.APIClient#learn-by-example-apiclient-setup

如何改變在VersionOne的特定資產的屬性編程是當前處於只讀狀態,因此您可以使用RESTful Web服務更新的屬性?

+4

@Batty,*停止*加的那樣可怕[meta標籤(http://blog.stackoverflow.com/2010/ 08 /死亡元標記/)的問題。這完全不合適。 – Charles

回答

1

由於屬性是隻讀的,因此您將無法更改其值。相反,請考慮創建一個「新」資產,設置其屬性,然後保存它。

回顧下面的例子中,並嘗試利用自己的項目中的想法:

var TestId = Oid.FromToken("Test:26017", _context.MetaModel); 
var TestAsset = _context.MetaModel.GetAssetType("Test"); 
var newTestAsset = _context.Services.New(TestAsset, TestId); 

var TestStatusAttr = newTestAsset.GetAttributeDefinition("Status.Name"); 
newTestAsset.SetAttributeValue(TestStatusAttr, "Failed"); 
_context.Services.Save(newTestAsset); 
相關問題