我有一个 xamarin 表单应用程序和一个使用 ASP.net 创建的 REST web api。 Web API 正在远程服务器上运行。在那个 web api 中,我有用于数据库查询的类。我需要将服务器地址、用户名、密码和数据库名称作为连接字符串从我的 xamarin 应用程序传递到该特定类。如何同时序列化连接字符串和对象?
我的数据库查询
public void addSalesReport(string connstr, SalesReport salesreport)
{
MySqlConnection myconn = new MySqlConnection(connstr);
string d = salesreport.Date.ToString("yyyy-MM-dd");
String sqlstr = "INSERT INTO salesreport (ID,sDate,ColorCopy,BwCopy,4RPrints,Misc,ExternalOrder,TotalSales,BwWastage,ColorWastage,Remarks) VALUES ('" + salesreport.ID + "','" + d + "'," + salesreport.ColorCopy + "," + salesreport.BwCopy + "," + salesreport.p4rPrint + "," + salesreport.Misc + ","+salesreport.ExternalOrder+","+salesreport.TotalSales+","+salesreport.BwWastage+","+salesreport.ColorWastage+",'"+salesreport.Remarks+"')";
MySqlCommand cmd = new MySqlCommand(sqlstr, myconn);
myconn.Open();
cmd.ExecuteNonQuery();
myconn.Close();
myconn.Dispose();
}
控制发布数据到Mysql数据库
[HttpPost]
[Route("api/SalesReport", Name = "salesReport")]
public void PostUpdate([FromBody]string connstr , SalesReport value)
{
SalesDBConn db = new SalesDBConn();
db.addSalesReport(connstr, value);
}
我的 Xamarin 应用中的数据服务类
public async void addSalesReport(string connstr, SalesReport salesReport)
{
var conn = JsonConvert.SerializeObject(connstr);
var contentstr = new StringContent(conn, Encoding.UTF8, "application/json");
var data = JsonConvert.SerializeObject(salesReport);
var content = new StringContent(data, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://myserverdomain.com/api/SalesReport", contentstr, content);
}
最佳答案
首先,我们必须引入一个新类,它将充当您的两个输入的包装容器。现在,每当我们序列化该类时,两个输入都会一起序列化:
public class DataToPost
{
public string ConnectionString { get; set; }
public SalesReport SalesReportData { get; set; }
}
然后更改 addSalesReport
方法,如下面的代码片段所示:
public async void addSalesReport(string connstr, SalesReport salesReport)
{
HttpClient client = new HttpClient();
var objectDataToPost = new DataToPost { ConnectionString = connstr, SalesReportData = salesReport };
var data = JsonConvert.SerializeObject(objectDataToPost);
var content = new StringContent(data, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://myserverdomain.com/api/SalesReport", content, CancellationToken.None);
}
关于c# - 如何序列化两个参数Json转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45275235/