2009-07-27 12 views
0
ASP.NET 3.5私は、Silverlightアプリケーション

ASP.NETコンパイルエラーが体を宣言しなければなりません

コード行発生のWebサービスプロジェクトをコンパイルしようとしたとき、私は上記のエラーを取得しています、IN

エラーは 'public List GetAccounts();'の下にあります。

namespace BegSilver.Web 
{ 
    [ServiceContract(Namespace = "")] 
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
    public class Service1 
    { 
    [OperationContract] 
    public List<Accounts> GetAccounts(); 

    // Add more operations here and mark them with [OperationContract] 
    } 
} 

これは、それが参照しているメソッドです。

public class Accounts 
    { 
    private Int32 acpk {get; set;} 
    private Decimal acctnumber { get; set; } 
    private String name { get; set; } 
    private String type { get; set; } 


    public static List<Accounts> GetAccounts() 
    { 
     List<Accounts> a = new List<Accounts>(); 

     a.Add(
     new Accounts() 
     { 
      acpk = 1, 
      acctnumber = 332.3m, 
      name = "Test", 
      type = "CASH" 
     }); 

    return a; 
    } 

私はいくつかの説明を見て提案の修正を試みたが、それらのどれも働いていないきました。

ご協力いただければ幸いです。 多くのおかげで、 マイク・トーマス

答えて

2

次のいずれかの必要性:

public List<Accounts> GetAccounts() 
{ 
    //just saw what you were doing above 
    return Accounts.GetAccounts(); 
} 

またはこれますが、サブクラスに機能をオーバーライドする予定がある場合:

public abstract List<Accounts> GetAccounts(); 

基本的に、あなただけの」することができますコンパイラが何かをコンパイルせずに空のメソッドを持っているか、コンパイラに後でそのメソッドを実装することを知らせることなく、空のメソッドを持っています。

1

あなたは、インターフェースと実際のサービスが混在しています。インタフェースはサービスCOntractを定義し、実際のサービスはその契約を実装します。サービスのエンドポイント(つまり利用可能なメソッド)を定義し、その契約を実際に実装する方法を定義するサービス契約(つまり、インターフェイスの定義)を実装する方法を読んでおく必要があります。

MSDNでこれらの2ページを参照してください:

// Define the IMath contract. 
[ServiceContract] 
public interface IMath 
{ 
    [OperationContract] 
    double Add(double A, double B); 

    [OperationContract] 
    double Multiply (double A, double B); 
} 
// Implement the IMath contract in the MathService class. 
public class MathService : IMath 
{ 
    public double Add (double A, double B) { return A + B; } 
    public double Multiply (double A, double B) { return A * B; } 
} 

や、サービスクラスに直接それを定義:

2ページ目から撮影Examle

Designing Service Contracts

Implementing Service Contracts

[ServiceContract]class MathService 
{ 
    [OperationContract] 
    public double Add(double A, double B) { return A + B; } 
    // notice the body of the method is filled in between the curly braces 
    [OperationContract] 
    public double Multiply (double A, double B) { return A * B; } 
} 
関連する問題