मेरे कोडType.GetType (स्ट्रिंग TypeName) रिटर्न अशक्त
type = Type.GetType(key);
कुंजी जो मैं पारित एक namespace योग्य नाम है।
मेरा कोड BusinessLayer में है। मैं DataAccessLayer का एक उदाहरण बना रहा हूं। DataAccessLayer संदर्भ BusinessLayer में जोड़ा गया है।
मैं के रूप में त्रुटि हो रही है "विधानसभा से प्रकार लोड नहीं कर सका Catalyst.DAL.ExamDAO.CExamDAO '' BusinessLayer, संस्करण = 1.9.3.0, संस्कृति = तटस्थ, PublicKeyToken = अशक्त '।"।
क्लास DataAccessLayer से स्पष्ट रूप से निर्दिष्ट करने के लिए मुझे क्या करना चाहिए?
कुंजी घाटी "Catalyst.DAL.ExamDAO.CExamDAO" है
संपादित करें:
मेरे वास्तविक कोड
public static object getClassInstance(string key, params object[] constructorArgs)
{
string assemblyPath = null;
string customClassName = null;
DataSet objDataset = getAssemblyInfo(key);
if (objDataset != null && objDataset.Tables.Count > 0 && objDataset.Tables[0].Rows.Count > 0)
{
assemblyPath = objDataset.Tables[0].Rows[0]["ACA_ASSEMBLY_PATH"].ToString();
customClassName = objDataset.Tables[0].Rows[0]["ACA_CLASS_NAME"].ToString();
}
Assembly assembly;
Type type;
if (assemblyPath != null && assemblyPath != string.Empty)
{
assembly = Assembly.LoadFile(assemblyPath);
type = assembly.GetType(customClassName);
}
else // if no customisation
{
type = Type.GetType(key);
}
object classInstance = constructorArgs == null ? Activator.CreateInstance(type) : Activator.CreateInstance(type, constructorArgs);
if (classInstance == null) throw new Exception("broke");
return classInstance;
}
मैं डिफ़ॉल्ट कक्षाओं लोड करने के लिए अगर कोई है कोशिश कर रहा हूँ है कोई अनुकूलन नहीं। विधि बीओ में है। यदि मैं किसी भी बो प्रकार के नामस्थान योग्य नामों के रूप में कुंजी पास करता हूं तो यह परिवर्तित हो जाता है। लेकिन डीएओ टाइप करें यह
आप इसे 'नई CExamDAO()' के बजाय इस तरह से क्यों कर रहे हो? यदि यह सच है कि "DataAccessLayer संदर्भ BusinessLayer में जोड़ा गया है" तो कोई कारण नहीं होना चाहिए कि आप 'नए' ऑपरेटर का उपयोग नहीं कर सकते हैं। या यदि आप वास्तव में सिर्फ एक प्रकार का संदर्भ चाहते हैं तो 'टाइपोफ (सीईएक्सएएमडीओ)' –
हमें "कुंजी" का टेक्स्ट मान दें। – xanatos
@ एडम राल्फ। वास्तव में मुझे कस्टम असेंबली और डिफ़ॉल्ट असेंबली के बीच स्विच करने की आवश्यकता है। मैं यहाँ उस कोड डाल दिया। –