मेरा प्रश्न यह है कि, मैं सबसे ऑब्जेक्ट को सबसे अधिक रखरखाव तरीके से किसी ऑब्जेक्ट को मैप कर सकता हूं। मैं जिस डीटीओ ऑब्जेक्ट को प्राप्त कर रहा हूं उसे बदल नहीं सकता है, इसलिए इसे अधिक सामान्यीकृत करने के लिए सेटअप किया गया है, इसलिए मुझे इसे अपने ऑब्जेक्ट के कार्यान्वयन के लिए मानचित्र बनाने का एक तरीका बनाना होगा।किसी ऑब्जेक्ट को किसी अन्य ऑब्जेक्ट पर मैप करने के लिए सर्वोत्तम अभ्यास
class Program
{
static void Main(string[] args)
{
var dto = new Dto();
dto.Items = new object[] { 1.00m, true, "Three" };
dto.ItemsNames = new[] { "One", "Two", "Three" };
var model = GetModel(dto);
Console.WriteLine("One: {0}", model.One);
Console.WriteLine("Two: {0}", model.Two);
Console.WriteLine("Three: {0}", model.Three);
Console.ReadLine();
}
private static Model GetModel(Dto dto)
{
var result = new Model();
result.One = Convert.ToDecimal(dto.Items[Array.IndexOf(dto.ItemsNames, "One")]);
result.Two = Convert.ToBoolean(dto.Items[Array.IndexOf(dto.ItemsNames, "Two")]);
result.Three = dto.Items[Array.IndexOf(dto.ItemsNames, "Three")].ToString();
return result;
}
}
class Dto
{
public object[] Items { get; set; }
public string[] ItemsNames { get; set; }
}
class Model
{
public decimal One { get; set; }
public bool Two { get; set; }
public string Three { get; set; }
}
मुझे लगता है कि यह बहुत अच्छा होगा अगर मैं था कि मॉडल में ले जाएगा नक्शाकार वर्ग के कुछ प्रकार की वस्तुओं PropertyInfo है, प्रकार मैं:
यहाँ मैं क्या होने की जरूरत को दिखाने के लिए उदाहरण कोड है में कनवर्ट करना चाहते हैं, और "itemname" मैं बाहर खींचना चाहता हूं। क्या इस क्लीनर को बनाने के लिए किसी को कोई सुझाव है?
धन्यवाद!
मानचित्रण के बारे में सुनिश्चित नहीं हैं, लेकिन आप निश्चित रूप से जेनरिक पर गौर करना चाहिए और सामान्य संग्रह का उपयोग: http://csharp-station.com/Tutorial/CSharp/Lesson20 – christiandev
मैं जो एक लेता मॉडल की एक costructor सुझाव है डीटीओ और मानचित्र/रूपांतरण/तदनुसार हार्डकोड किए गए चेक के रूप में जब आप डीटीओ में कुछ बदलते हैं तो संकलन त्रुटियां प्राप्त होती हैं। प्रतिबिंब और इसलिए तारों से निपटने से आप रखरखाव को बढ़ाने में मदद नहीं करते हैं। – wonko79