का समर्थन नहीं करता है सबसे पहले हम सभी सहमत हैं कि कस्टम ऑब्जेक्ट/इकाई के अंदर कॉपी फ़ंक्शन को लागू करने का सबसे अच्छा तरीका होगा। लेकिन इस परिदृश्य पर विचार करें। हमारे पास यह विकल्प नहीं है और हम विशिष्ट फ़ंक्शन लिखना नहीं चाहते हैं जो इकाई की सटीक प्रतिलिपि बनायेगा क्योंकि भविष्य में इकाई बदली जाएगी ताकि हमारी कॉपी फ़ंक्शन विफल हो जाए।गतिशील ऑब्जेक्ट की प्रतिलिपि बनाने का सबसे तेज़ तरीका है जो कॉपी फ़ंक्शन
[Serializable]
class MyEntity
{
public MyEntity()
{
}
public MyEntity(int id, string name)
{
this.Id = id;
this.Name = name;
}
public int Id { get; set; }
public string Name { get; set; }
public MyEntity Copy()
{
throw new NotImplementedException();
}
}
सभी आवश्यकताओं को कवर करने के लिए ऊपर मैं दो समाधान के साथ आया था:
//original...
MyEntity original = new MyEntity() { Id = 1, Name = "demo1" };
//first way to copy object...
List<MyEntity> list = new List<MyEntity>() { original};
MyEntity copy1 = list.ConvertAll(entity => new MyEntity(entity.Id, entity.Name))[0];
//second way to copy object...
byte[] bytes = SerializeEntity(original);
MyEntity copy2 = (MyEntity)DeserializeData(bytes);
byte[] SerializeEntity(object data)
{
byte[] result = null;
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, data);
result = ms.ToArray();
}
return result;
}
object DeserializeData(byte[] data)
{
object result = null;
using(MemoryStream ms = new MemoryStream(data))
{
BinaryFormatter formatter = new BinaryFormatter();
result = formatter.Deserialize(ms);
}
return result;
}
और अब सवाल
यहाँ वर्तमान इकाई के संस्करण सरलीकृत है। दृश्य के पीछे सबसे इष्टतम समाधान क्या है और क्यों, पहला या दूसरा? क्या ऊपर की आवश्यकताओं पर विचार करने के लिए सटीक प्रतिलिपि करने का कोई बेहतर तरीका है? बड़ी संख्या में प्रतियां की जाएगी।
पीएस नोट: मुझे पता है कि पहला तरीका मूल रूप से पहले से ही एक कॉपी फ़ंक्शन है क्योंकि होन्ज़ा ने बताया। मैं serialization के रूप में बहुमुखी और कस्टम कॉपी समारोह के रूप में तेजी से कुछ दिख रहा हूँ।
मैंने ऑटोमैपर के बारे में कुछ पोस्ट पढ़ी थीं लेकिन मेरे प्रदर्शन के बारे में कोई वास्तविक निष्कर्ष नहीं बना सका, मैं अपने मामले में उम्मीद कर सकता हूं। कुछ लोग दावा करते हैं कि सभी मामलों के लिए सबसे अच्छा समाधान नहीं है। क्या आप किसी भी पॉइंटर्स का सुझाव दे सकते हैं जिसके परिणामस्वरूप ऑटोमैपर का उपयोग करके खराब प्रदर्शन हो सकता है? इस पल में वैकल्पिक के लिए +1 –