मैं विभिन्न उद्देश्यों के लिए ऑब्जेक्ट को क्रमबद्ध और deserialize करने के लिए JSON.NET का उपयोग कर रहा हूं। मैं डी का बड़ा प्रशंसक हूं लेकिन नीचे दिया गया कोड मुझे ठंड देता है। खराब कोड की तरह गंध है:DI और JSON.NET
public class Foo : Baz
{
private readonly IBar bar;
public Foo()
: this(ObjectFactory.GetInstance<IBar>())
{ }
public Foo(IBar bar)
{
if (bar == null)
throw new ArgumentNullException("bar");
this.bar = bar;
}
... rest of class ...
}
डिफ़ॉल्ट निर्माता यह चीज है जो मुझे ठंड देता है। सार आधार वर्ग बाज से
string jsonString = ...;
string concreteBazType = ...;
Baz baz = (Baz)JsonConvert.DeserializeObject(jsonString, Type.GetType(concreteBazType);
सूचना वर्ग फू inherrits: मैं इस JSON.NET की वजह से अक्रमांकन समर्थन करने के लिए जोड़ दिया है!
आप सभी को DI और JSON.NET geeks के लिए मेरा प्रश्न है: कोड-गंध से बचने के लिए मैं कोड में कैसे बदल सकता हूं डिफ़ॉल्ट कन्स्ट्रक्टर मुझे कक्षा फू में देता है?