所以问题是:我已经编写了一个应用程序来调用联邦快递配送 API,但是现在我还需要在发送请求之后立即提出一个单独的rate请求。(原因是我需要一个数据和度量标准的非帐户费率,但我没有任何第三方装运请求的费率)。当我创建速率请求时,我可以对简单的值执行如下操作:
raterequest.RequestedShipment.ServiceType = (rateReference.ServiceType)shiprequest.RequestedShipment.ServiceType;但是我不能用任何复杂的类型来做,就像这样:
raterequest.RequestedShipment.Shipper = (rateReference.Shipper)shiprequest.RequestedShipment.Shipper;甚至像这样:
raterequest.RequestedShipment.Shipper.Address = (rateReference.Address)shiprequest.RequestedShipment.Shipper.Address;..。因为.Net会抱怨它不能在ship地址类型和速率地址类型之间进行转换(尽管它们是相同的)。我可以一次设置一个"raterequest“参数。( "Address.City"),但这是一个麻烦,我最终想要做一些更复杂的事情(即使用相同的请求参数调用多个API,只需最少的额外代码)。对此是否有任何通用解决方案,以便可以来回转换相同的复杂类型(但在不同的名称空间中)?
发布于 2012-06-11 18:05:58
自动机擅长这类事情。当从一种类型复制到另一种类型时,它通常会做“明智”的事情,而当它没有做明智的事情(或者需要做一些荒谬的事情)时,您可以将其挂钩并定义应该发生的事情。
发布于 2012-06-11 18:09:46
您可以定义自定义的隐式强制转换操作符,以便在类似的raterequest类和shiprequest类之间进行转换。
https://stackoverflow.com/questions/10985120
复制相似问题