c# - 将 c# 类转换为具有双数据类型的 XML
问题描述
我正在尝试在 c# 应用程序中使用 XMLSerializer 将 Netsuite Record(CashSale) 转换为 XML 等效项。但是数据类型为 double 的属性未反映在 XML 字符串中
我在 c# 中创建了一个具有双数据类型属性的类,我可以在 xml 字符串中看到属性和值
我尝试将 Netsuite Cashsale 类转换为 xml 字符串。双数据类型属性未反映在 xml 字符串中
CashSale cs = new CashSale();
cs.altHandlingCost = Convert.ToDouble(10.73.ToString(), CultureInfo.CurrentCulture);
cs.entity = new RecordRef { internalId = "311", type = RecordType.customer };
cs.externalId = "54658";
cs.memo = "POS Memo";
cs.tranDate = DateTime.Now.AddDays(-1);
cs.undepFunds = false;
cs.account = new RecordRef { internalId = "915" };
cs.subsidiary = new RecordRef { internalId = "2" };
cs.location = new RecordRef { internalId = "101" };
CashSaleItem[] item = { new CashSaleItem { amount = 10,taxAmount=1, taxCode = new RecordRef { internalId = "7" }, description = "dec", item = new RecordRef { externalId = "4000Bev" } } };
cs.itemList = new CashSaleItemList { item = item };
var a=Serialize(cs);
WriteResponse writeRes = Client.Service.upsert(cs);
public static string Serialize(object dataToSerialize)
{
if (dataToSerialize == null) return null;
using (StringWriter stringwriter = new System.IO.StringWriter())
{
var serializer = new XmlSerializer(dataToSerialize.GetType());
serializer.Serialize(stringwriter, dataToSerialize);
return stringwriter.ToString();
}
}
预期:对于 Netsuite 类,包括 double 数据类型在内的所有属性都应转换为 XML 字符串 实际:数据类型为 Double 的属性不会转换为 XML
最小可重复步骤:
使用https://webservices.netsuite.com/wsdl/v2019_1_0/netsuite.wsdl创建 Web 参考
为 CashSale 创建一个对象
为双数据类型字段分配一些值以及其他值。
序列化为 XML 字符串
解决方案
我找到了解决这个问题的方法:
更改完成:我在请求中添加了一个布尔字段数量并将其设置为true
推荐阅读
- spring - Autowired 服务在嵌入式 groovy 脚本中为空
- powerbi - 如何在多租户场景下访问 Power BI 服务
- ruby-on-rails - 在 Dockerized 非 SPA Rails 5.2 应用程序上启用 Vue - 最少需要哪些 Rails 组件?
- javascript - 我可以使用 React Hooks 跟踪多个复选框还是需要使用 Class 组件?
- bash - bash中的curl返回找不到命令
- r - tidyr::pivot_longer() 函数不适用于将列从逻辑转换为整数的 tibble
- reactjs - 类型中缺少属性“类型”。但类型“道具”中是必需的
- r - R 中的 ifelse 语句给出的值不正确
- python - 如何在函数中将 r(用于原始数据)用于 Python 中的字符串?
- firebase - 如何比较两个列表并返回另一个具有相同值的列表?- 颤振和火力基地