मेरे पास एक ErrorMessage वर्ग और ResultMessage वर्ग है जिसे सामान्य होने की आवश्यकता है। ErrorMessage है:

public class ErrorMessage
{
    public int httpStatus { get; set; } 
    public string Header { get; set; } = "Error";
    public string Message { get; set; }
}

ResultMessage ErrorMessage के समान है, सिवाय इसके कि उसे एक IList परिणाम भी वापस करना होगा, जिसका अर्थ है कि उदाहरण के लिए यदि मैंने किसी उपयोगकर्ता को सफलतापूर्वक सम्मिलित किया है, तो आउटपुट होना चाहिए

{
 "httpStatus": 200,
 "Header" : "Success",
 "Message" : "User added Successfully",
 "Result" : {
 "userName": "dfdaadf",
 "password": "faeferafreaf"
}
}

मेरा ResultMessage है:

public class ResultMessage : ErrorMessage
{
    public ResultMessage()
    {
        httpStatus = 200;
        Header = "Success";
    }
    public virtual IList<T> Result { get; set; }
}

जहां T को एक सामान्य वर्ग के रूप में परिभाषित किया जाना चाहिए, उदाहरण के लिए:

var msg = new ResultMessage();
var user = new User();
var list = new IList<User>();
list.Add(user);
msg.Result = list;

बेशक public virtual IList<T> Result { get; set; } गलत वाक्य रचना है।

मैं अपने लक्ष्य को कैसे प्राप्त कर सकता हूँ?

0
NourMawla 17 मार्च 2021, 15:50

2 जवाब

सबसे बढ़िया उत्तर

आपका ResultMessage भी सामान्य होना चाहिए:

public class ResultMessage<T> : ErrorMessage

कॉल करते समय इसे कुछ इस तरह होना चाहिए:

var msg = new ResultMessage<User>();
var user = new User();
var list = new List<User>();
list.Add(user);
msg.Result = list;

एक और संकेत:

सूची गुणों को व्यवस्थित नहीं किया जाना चाहिए। या तो इस संपत्ति के लिए एक रीडोनली इंटरफ़ेस का उपयोग करें जैसे IReadOnlyList<T> या संपत्ति को केवल पढ़ने के लिए बनाएं और इसे निर्माण पर प्रारंभ करें:

public class ResultMessage<T> : ErrorMessage
{
    public IReadOnlyList<T> Result { get; set; }

    public IList<T> Result { get; } = new List<T>();
}
1
Oliver 17 मार्च 2021, 15:56

सूची IList इंटरफ़ेस लागू करता है, आप एक सामान्य वर्ग के रूप में ResultMessage कर सकते हैं, उदाहरण:

  public class ResultMessage<T> : ErrorMessage
    {
        public ResultMessage()
        {
            httpStatus = 200;
            Header = "Success";
            Result = new List<T>();
        }
        public virtual IList<T> Result { get; set; }
    }



var msg = new ResultMessage<User>();
            var user = new User();
            msg.Result.Add(user);
0
Darwin Perdomo 17 मार्च 2021, 16:00