4

私は以下を作成しました:

public class HttpStatusErrors
{
    public HttpStatusErrors()
    {
        this.Details = new List<HttpStatusErrorDetails>();
    }
    public string Header { set; get; }
    public IList<HttpStatusErrorDetails> Details { set; get; }
}

public class HttpStatusErrorDetails
{
    public HttpStatusErrorDetails()
    {
        this.Errors = new List<string>();
    }
    public string Error { set; get; }
    public IList<string> Errors { set; get; }
}

私のコードでは、次のように使用しています。

var msg = new HttpStatusErrors();
   msg.Header  = "Validation Error";           
   foreach (var eve in ex.EntityValidationErrors) {

      msg.Details. // Valid so far 
      msg.Details.Error // Gives the error below:

Ide は msg.Details を有効として認識しますが、2 行目を書き込もうとすると、次のようになります。

Error   3   'System.Collections.Generic.IList<TestDb.Models.Http.HttpStatusErrorDetails>' 
does not contain a definition for 'Error' and no extension method 'Error' accepting a first 
argument of type 'System.Collections.Generic.IList<TestDb.Models.Http.HttpStatusErrorDetails>' 
could be found (are you missing a using directive or an assembly reference?)    
C:\K\ST136 Aug 16\WebUx\Controllers\ProblemController.cs    121 33  WebUx

私が間違っていることはありますか?最初のクラスが作成されたときに新しいリストが作成されるように、この設定を行った方法を考えました。

4

3 に答える 3

10

msg.Detailsオブジェクトを返しListます。プロパティList<T>を持っていません。Errorsリスト内の特定の要素にアクセスする必要があり、その場合にのみErrorsプロパティが取得されます。

例えば:

msg.Details[0].Error

あなたのコードでは、それらにアクセスしようとする前に要素が含まれていることを確認するか、ループmsg.Detailsでそれらを反復処理することをお勧めします。foreach

于 2013-08-15T10:24:51.637 に答える