0

すべてが混乱しました、そして私はそれがばかげたものであると確信しています。解決:

プロジェクト1。コンパニア。 Linea.cs:コンストラクターが異なるLineaクラスだけで、今のところはこれで終わりです。

プロジェクト2。Bandeja。 Class.cs:ここでは、Lineaを操作するときに必要になるすべてのメソッドを記述しました。(getLinea()は、以下の例で示すものです)

プロジェクト3。WCFWebService。 C#メソッドを呼び出すWCFサービス。

参照。

BandejaからCompaniaまで。

WCFWebServiceからCompaniaへ。

WCFWebServiceからBandejaへ。

ビルド中に発生する唯一のエラーは、サービスから発生します。

サービスクラス

namespace WCFWebService
{
    [DataContract]
    public class WSBandeja : IWSBandeja
    {
        public Compania.Linea getLinea()
        {
            Compania.Linea linea = new Compania.Linea();
            return linea.

        }

    }
}

return.lineaと入力すると。Project Bandeja内のclass.csに含まれているメソッドgetLinea()が見つかりません。パラメーターだけが見つかります。

私はC#とWebServicesを初めて使用するので、どんな提案でも大歓迎です。ありがとう。

編集。Companiaプロジェクト-Linea.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Compania
{
    public class Linea
    {
        public string ani { get; set; }
        public int teleprom { get; set; }
        public string actividad { get; set; }
        public DateTime fechaIngreso { get; set; }
        public string reclamo { get; set; }
        public string producto { get; set; }
        public string observacion { get; set; }
        public int tipoActividad { get; set; }
        public string tipoAveria { get; set; }
        public int reiteros { get; set; }
        public int call { get; set; }
        public bool trabajado { get; set; }
    }
}

Bandejaプロジェクト-Class.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Web;

namespace Bandeja
{
    public class Bandeja
    {
        public static string getNewConnection()
        {
            return ConfigurationManager.ConnectionStrings["BO"].ConnectionString;
        }

        public Compania.Linea getLinea()
        {
            var cLinea = new Compania.Linea();
            string connectionString = getNewConnection();
            SqlConnection conn = new SqlConnection(connectionString);
            using(conn)
            { 
                string variable = "GESTIONAR MANUALMENTE";
                var command = new SqlCommand("Bandeja_test");
                command.Connection = conn; 
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add(new SqlParameter("@linea", variable));
                conn.Open();
                SqlDataReader newReader = command.ExecuteReader();

                while (newReader.Read())
                {
                    cLinea = new Compania.Linea();
                    cLinea.ani = newReader["Línea"].ToString();
                    cLinea.fechaIngreso = Convert.ToDateTime(newReader["Fecha Ingreso"]);
                    cLinea.producto = newReader["Producto"].ToString();
                    cLinea.observacion = newReader["Observación"].ToString();
                }
            }

            return cLinea;
        }

    }

}

Webサービスインターフェイス。

namespace WCFWebService
{
    [ServiceContract]
    public interface IWSBandeja
    {
        [OperationContract]
        Compania.Linea getLinea();

    }
}
4

2 に答える 2

2

間違ったクラスをインスタンス化しているようです。これを試して。

[DataContract]
    public class WSBandeja : IWSBandeja
    {
        public Compania.Linea getLinea()
        {
            Bandeja.Bandeja bandeja = new Bandeja.Bandeja();
            return bandeja.getLinea();
        }
    }
于 2012-07-06T16:03:06.580 に答える
1

試す

[ServiceContract]
    public class WSBandeja : IWSBandeja
    {
        [OperationContract]
        public Compania.Linea getLinea()
        {
            Compania.Linea linea = new Compania.Linea();
            return linea.
        }
    }

次に、複合型の[DataContract]を定義します

namespace Compania
{
[DataContract]
public class Linea
{

    [DataMember]
    //whatever properties you have
}

DataContractsと複合型の詳細については、このページを参照してください

于 2012-07-06T15:55:34.123 に答える