0

初めて WCF を試していますが、クライアント プログラムに実装しようとしているサービスを実行しています。クライアント プログラムは、私が実行していた別のプログラムです。

私の機能の1つはこれで始まります

public DataTable RunStoredProcWithDataTable(string storedprocname, List<System.Data.SqlClient.SqlParameter> paramlist)

クライアント プログラムでは、「サービス」というラベルの付いた Web 参照として WCF を読み込みました。この関数をクライアント プログラムに実装しようとすると、関数は「System.Data.SqlClient.SqlParameter」が期待される「Service.SqlParameter」を期待しています。

SqlClient.SqlParameter をキャストして Service.SqlParameter に変換してみました。

paramlist = (List<DataAccessService.SqlParameter>)paramlist;

「型 List < SqlClient.SqlParameter> を List < Service.SqlParameter> に変換できません」というエラーが表示される

コードを調べて SqlClisnt.SqlParameter を Service.SqlParameter に変更せずに変換する方法はありますか?

これはサービス契約です

[ServiceContract]
[XmlSerializerFormat]
public interface ISqlAccess
{
 [OperationContract]
 DataTable RunStoredProcWithDataTableParameter(SqlAccess sql, string storedprocname, List<System.Data.SqlClient.SqlParameter> paramlist);
}

これがデータ契約です

[DataContract]
public class SqlAccess
{
    [DataMember]
    public string connectionname;
}
4

1 に答える 1

0

通常の SqlParameter から新しい Sql Parameter に変換する関数を作成することで、これを解決しました。

使った機能はこれ

private DataAccessService.DataAccessSqlParameter ConvertParam(SqlParameter param)
{
    DataAccessService.DataAccessSqlParameter daparam = new DataAccessService.DataAccessSqlParameter();
    daparam.ParameterName = param.ParameterName;
    daparam.ParameterValue = param.Value;
    return daparam;
}
于 2014-03-14T15:15:29.343 に答える