Tag: 互操作

使用平台通道在Flutter中调用本机库

使用平台通道 ,Flutter可以与本机平台互操作(即读取电池电量)。 在Android上,这需要调用Java方法。 我想使用第三方Java SDK(适用于AWS Cognito)。 我可以把这个库放在我/android某个地方,并与之交互吗? 如果是这样,我该怎么办?

解析从Java Web服务返回的.NET DataSet

我必须从Java应用程序中使用.NET托管的Web服务。 两者之间的互操作性通常非常好。 我遇到的问题是.NET应用程序开发人员选择使用.NET DataSet对象公开数据。 关于为什么不应该这样做以及它如何使互操作性变得困难,有很多文章写成: http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx http://www.lhotka.net/weblog/ThoughtsOnPassingDataSetObjectsViaWebServices.aspx http://aspnet.4guysfromrolla.com/articles/051805-1.aspx http://www.theserverside.net/tt/articles/showarticle.tss?id=Top5WSMistakes 我的问题是,尽管不推荐这种做法,但我不得不使用Web服务来返回带有Java的DataSet。 当你使用除.NET以外的任何东西为这样的东西生成代理时,你基本上会得到一个如下所示的对象: @XmlElement(namespace = “http://www.w3.org/2001/XMLSchema”, required = true) protected Schema schema; @XmlAnyElement(lax = true) protected Object any; 第一个字段是应该描述DataSet的实际模式。 当我使用Java中的JAX-WS和JAXB处理它时,它将所有XS-Schema作为Java对象引入,以便在此处表示。 走JAXB的对象树是可能的但不漂亮。 any字段表示由架构指定的架构中的DataSet的原始XML。 数据集的结构非常一致,但数据类型确实发生了变化。 我需要访问类型信息,架构因呼叫而异。 虽然我有几个选择,但似乎没有“好”的选择。 尝试在运行时使用JAXB从架构生成Java对象似乎是个坏主意。 这将太慢,因为它需要每次都发生。 暴力使用JAX-WS引入的JAXB对象遍历模式树。 也许不是使用JAXB来解析模式,而是更容易将其作为XML处理并使用XPath来尝试查找我需要的类型信息。 还有其他我没考虑过的选择吗? 是否有一个Java库可以轻松解析DataSet对象? 其他人可能有类似情况做了什么?