作業中のアプリがあり、2 つのコールド Fusion Web サービスを呼び出す必要があります。
http://blah/search.cfc and http://blah/asset.cfc
どちらも「QueryBean」を返します。それらを DAM_Search および DAM_Asset と呼びました。QueryBean の結果は同じ型ですが、2 つのディレクトリに格納されます。
DAM_Search にはこのクラスが プロジェクト フォルダー\Web References\DAM_Search\Reference.cs にあり、DAM_Asset には同じクラスが プロジェクト フォルダー\Web References\DAM_Asset\Reference.csにあります。
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.SoapTypeAttribute(Namespace="http://wstypes.newatlanta.com")]
public partial class QueryBean {
private object[] dataField;
private string[] columnListField;
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public object[] data {
get {
return this.dataField;
}
set {
this.dataField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public string[] columnList {
get {
return this.columnListField;
}
set {
this.columnListField = value;
}
}
}
私の問題は、このサービスからの結果を、QueryBean を XML ノードに変換する単一の関数に送信して、それを呼び出したアプリに戻すことができるようにしたいということです。しかし、DAM_Search.QueryBean が DAM_Asset.QueryBean と同じではないため、関数を使用しようとすると失敗します。キャストしてみると
private XmlDocument Get_AssetInfo(object qBean)
{
DAM_Search.QueryBean qBean2 = (DAM_Search.QueryBean)qBean;
このエラーメッセージが表示されます
*「DAM_Service.DAM_Asset.QueryBean」タイプのオブジェクトを「DAM_Service.DAM_Search.QueryBean」タイプにキャストできません。
データ型が実際に同じであることを知っているのでキャストを強制する方法はありますか、または QueryBean クラスに同じクラス参照を使用するように Web サービスに指示する方法はありますか?
これはそこにいる誰かに何かをもたらしますか?:-)
ティム