मैं किसी अन्य .NET मानक प्रोजेक्ट में .net मानक प्रोजेक्ट का उपभोग कर रहा हूं। मैंने इसे एक nuget पैकेज के रूप में पैक किया और मेरे प्रोजेक्ट के अंदर dll शामिल किया। जब मेरी परियोजना कुछ काम करने के लिए डीएलएल में कॉल करती है, तो यह पहले किसी वस्तु को खबर देती है

var account = new Data.Account();

जहां खाता वर्ग इस प्रकार दिखता है:

internal class Account : Base
{
    const string NAME = "test";

    internal Account() { }
}

और बेस क्लास निम्नानुसार दिखता है:

public abstract class Base
{
    protected string connectionString;

    public Base()
    {
        connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
    }
}

हालांकि जब यह इस वर्ग को नया करने का प्रयास करता है तो यह अपवाद फेंकता है:

   at xxx.xx.Data.Base..ctor() in xxx\xxx\Data\Base.cs:line 11 

जहां लाइन 11 केवल public Base() कंस्ट्रक्टर है

मैंने pdb को nuspec फ़ाइल में शामिल किया है ताकि मैं dll में डीबग कर सकूं लेकिन ऐसा करने से कोई अतिरिक्त संदर्भ या स्ट्रैक ट्रेस नहीं मिलता है। मुझे लगता है कि इसे या तो कक्षाओं के आंतरिक होने के साथ करना है या इसे डीएल में ऐप.कॉन्फ़िग में कनेक्शनस्ट्रिंग कुंजी नहीं मिल रही है, यही वह है जिसे मैं अब ऑनलाइन शोध कर रहा हूं।

0
Matt 16 अक्टूबर 2018, 20:43

1 उत्तर

सबसे बढ़िया उत्तर
  1. यदि आप .NET Core 2.0 एप्लिकेशन में System.Configuration.ConfigurationManager का उपयोग करना चाहते हैं, तो आपको संबंधित कॉन्फ़िगरेशन अनुभागों के साथ प्रोजेक्ट (आपके मामले में ASP.NET Core WebApi प्रोजेक्ट) में एक App.config जोड़ना होगा।
  2. कॉन्फ़िगरेशन सेटिंग्स पढ़ते समय आपको शून्य की जांच करनी चाहिए, ताकि आप इसे अधिक सार्थक त्रुटि संदेश के साथ इनायत से संभाल सकें, उदा।

    var connectionString = System.Configuration.ConfigurationManager
        .ConnectionStrings["connectionstring"]?.ConnectionString;
    if (connectionString == null)
    {
         throw new ConfigurationErrorsException(
            "ConnectionString 'connectionString' not found in application configuration file"
            );
    }
    
1
Joe 16 अक्टूबर 2018, 18:45