C# C语言中的硬编码值#
我有一个DTO(或POCO类,不确定正确的术语是什么)类(在模型中),具有以下值:C# C语言中的硬编码值#,c#,model-view-controller,C#,Model View Controller,我有一个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 {
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应用程序中调用它是在一个RESTWebService调用之后进行的,该调用返回一个带有上述类值的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);
//下面的响应变量包含web服务调用的Json结果
var root=JsonConvert.DeserializeObject(响应);
//将值硬编码到测试视图
root.customer=//如何硬编码此值?
root.itempowered=“随机项目”;
root.staffId=2299;
返回视图(根);
如何硬编码“root.customer”变量?它包含一个数组和字符串变量。创建该类的新实例(或者更确切地说是该类实例的新数组)并填充它
root.customer = new CustomerDTO[]
{
new CustomerDTO()
{
name = "",
address = new string[]
{
"value1",
"value2"
}
}
};
因为它是一个带有公共setter的公共类,所以您可以轻松地执行此操作。创建该类的新实例(或者更确切地说是该类实例的新数组)并填充它
root.customer = new CustomerDTO[]
{
new CustomerDTO()
{
name = "",
address = new string[]
{
"value1",
"value2"
}
}
};
因为它是一个带有公共setter的公共类,所以您可以很容易地做到这一点。虽然我不喜欢硬编码,但您可以这样做
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);
列出客户=新建列表();
var customer1=新CustomerDTO();
customer1.name=“xyz”;
customer1.address=新字符串[1];
客户1.地址[0]=“州、市、xyz街123号”;
var customer2=新CustomerDTO();
customer2.name=“abc”;
customer2.address=新字符串[1];
客户2.地址[0]=“州、市、abc街123号”;
customers.Add(customer1);
customers.Add(customer2);
//将值硬编码到测试视图
root.customer=customers.ToArray();
root.itempowered=“随机项目”;
root.staffId=2299;
返回视图(根);
虽然我不喜欢硬编码,但您可以这样做
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);
列出客户=新建列表();
var customer1=新CustomerDTO();
customer1.name=“xyz”;
customer1.address=新字符串[1];
客户1.地址[0]=“州、市、xyz街123号”;
var customer2=新CustomerDTO();
customer2.name=“abc”;
customer2.address=新字符串[1];
客户2.地址[0]=“州、市、abc街123号”;
customers.Add(customer1);
customers.Add(customer2);
//将值硬编码到测试视图
root.customer=customers.ToArray();
root.itempowered=“随机项目”;
root.staffId=2299;
返回视图(根);
创建一个类实例,将其变量设置为所需的硬编码值,然后将其序列化-与反序列化操作相反。root.customer
是一个数组。您想将其设置为什么?只是一个空数组new CustomerDTO[0]
?您可以将其设置为空数组、带有硬编码值的数组等。选择权归您root.customer=newcustomerdto[0]
或root.customer=new[]{new CustomerDTO(){name=“John Smith”,address=new[]{123 Main St”,“华盛顿特区”};
它正在调用另一个包含数组和字符串的类。我想在从root.customer变量调用的customerTo类中发送“name”和“address”的值。我还强烈建议查看C#样式/命名约定。小写公共属性名不是bueno。创建一个类实例,设置其变量对所需的硬编码值进行排序,并将其序列化-与反序列化操作相反。root.customer
是一个数组。要将其设置为什么?只是一个空数组?new CustomerDTO[0]
?您可以将其设置为空数组、具有硬编码值的数组等。选择权归您。root.customer=new CustomerDTO[0];
或root.customer=new[]{new CustomerDTO(){name=“John Smith”,address=new[]{123 Main St”,“华盛顿特区”};
它正在调用另一个包含数组和字符串的类。我想在从root.customer变量调用的CustomerTo类中发送“name”和“address”的值。我还强烈建议查看C#样式/命名约定。小写公共属性名不是bueno。使用类型推断,您甚至不需要eCustomerDTO
或string
在括号前键入[]
。通过类型推断,您甚至不需要在括号前键入CustomerDTO
或string
类型。