2017-10-05 135 views
0

我有一個DTO(或POCO類的,不確定的,正確的說法是什麼)類(內型)具有以下值:硬編碼值

public class MainDTO 
{ 
    public CustomerDTO[] customer { get; set; } 
    public string itemPurchased { get; set; } 
    public int staffId { get; set; } 
} 

public class CustomerDTO 
{ 
    public string name { get; set; } 
    public string[] address { get; set; } 
} 

我在我的MVC調用此應用程序在REST web服務調用後返回一個帶有上述類的值的Json。

我想在控制器中對這些值進行硬編碼,以便我可以測試視圖。但是,我不知道如何硬編碼調用另一個類的值。

//Response variable below contains Json result of the web service call 
var root = JsonConvert.DeserializeObject<GETModel.MainDTO>(response); 

//Hard-coding values to test view 
root.customer = ? //How can I hard-code this value? 
root.itemPurchased = 「Random Item」; 
root.staffId = 2299; 

return View(root); 

如何硬編碼「root.customer」變量?它包含一個數組和字符串變量。

+0

創建一個類的實例,設置它的變量,你要硬編碼值,並對其進行序列化 - 你在做反序列化的正好相反.. – Aaron

+0

'root.customer'是一個數組。你想要設置什麼?只是一個空陣列? '新的CustomerDTO [0]'? – David

+0

您可以將它設置爲空數組,硬編碼值的數組等。您的選擇是您的。 'root.customer = new CustomerDTO [0];''或'root.customer = new [] {new CustomerDTO(){name =「John Smith」,address = new [] {「123 Main St」,「Washington DC」 }};' – maccettura

回答

3

創建該類的新實例(或更確切地說是該類實例的新數組)並填充它。

root.customer = new CustomerDTO[] 
{ 
    new CustomerDTO() 
    { 
     name = "", 
     address = new string[] 
     { 
      "value1", 
      "value2" 
     } 
    } 
}; 

由於這是一個公開課,公共設置者可以很容易地做到這一點。

+0

使用類型推斷,在括號'[]'之前,甚至不需要'CustomerDTO'或'string'類型。 – JuanR

0

雖然我不喜歡硬編碼,但可以做這樣的事情。

List<CustomerDTO> customers = new List<CustomerDTO>(); 

    var customer1 = new CustomerDTO(); 
    customer1.name = "xyz"; 
    customer1.address = new string[1]; 
    customer1.address[0] = "123, xyz st, city, state"; 

    var customer2 = new CustomerDTO(); 
    customer2.name = "abc"; 
    customer2.address = new string[1]; 
    customer2.address[0] = "123, abc st, city, state"; 

    customers.Add(customer1); 
    customers.Add(customer2); 

    //Hard-coding values to test view 
    root.customer = customers.ToArray(); 
    root.itemPurchased = 「Random Item」; 
    root.staffId = 2299; 

    return View(root);