Web.Config থেকে পরিবর্তনীয় পড়ুন


উত্তর:


71

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার কাছ থেকে ওয়েবকনফিগ পরিবর্তন না করা, কারণ প্রতিবার পরিবর্তন হওয়ার সাথে সাথে এটি আপনার অ্যাপ্লিকেশনটি পুনরায় চালু করবে।

তবে আপনি ওয়েবকনফিগ ব্যবহার করে পড়তে পারেন System.Configuration.ConfigurationManager.AppSettings


আপনাকে ধন্যবাদ মিঃ মুহম্মদ, সুতরাং আপনি ওয়েবের অ্যাপ্লিকেশনটি পুনরায় না রেখে পরিবর্তিত হতে পারে এমন কোনও পাবলিক প্লেসে ভেরিয়েবল সংরক্ষণ করতে আমাকে কী পরামর্শ দিচ্ছেন? অগ্রিম ধন্যবাদ
আমিরা এলসেদ ইসমাইল

4
আপনি কোনও এনক্রিপ্ট হওয়া এক্সএমএল ফাইলে এ জাতীয় ভেরিয়েবল সংরক্ষণ করতে পারেন।
বামিপ

4
হ্যাঁ, এক্সএমএল ফাইলটি ভাল ধারণা। অথবা আপনি এটিকে ডিবিতে সঞ্চয় করতে এবং অ্যাপ্লিকেশন_স্টার্ট (গ্লোবাল.অ্যাক্স্যাক্স) যুক্ত করতে পারেন, এটিকে অ্যাপ্লিকেশন ভেরিয়েবলে রাখতে পারেন এবং এগুলিকে প্রয়োগ করতে পারেন। এই ভেরিয়েবলটি কেবল একবার অ্যাপ্লিকেশনটিতে বরাদ্দ করে এবং যদি আপনার অ্যাপ্লিকেশন পুনরায় চালু হয় তবে এগুলি আবার নিয়োগ করা হবে।
মুহাম্মদ আক্তার

আপনার সহায়তার জন্য মিঃ ওয়ামিপ এবং মিঃ মোহাম্মদ আপনাকে অনেক ধন্যবাদ
আমিরা এলসেদ ইসমাইল

145

নিম্নলিখিত ওয়েবকনফিগ দেওয়া:

<appSettings>
     <add key="ClientId" value="127605460617602"/>
     <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>

ব্যবহারের উদাহরণ:

using System.Configuration;

string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];

17
+1 সুন্দর উত্তর। তবে এক নোট - আপনাকে কল করার প্রয়োজন হবে না ToStringউপর স্পষ্টভাবে indexers যেমন AppSettingsধরনের ফেরত মান stringনিজেদের
horgh

16

আপনি যদি বেসিকগুলি চান তবে আপনি কীগুলি এর মাধ্যমে অ্যাক্সেস করতে পারবেন:

string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();

আমার ওয়েব কনফিগার কীগুলি অ্যাক্সেস করতে আমি সর্বদা আমার অ্যাপ্লিকেশনটিতে একটি স্ট্যাটিক ক্লাস করি। এর অর্থ আমি যেখানেই প্রয়োজন সেখানে এগুলি অ্যাক্সেস করতে পারি এবং আমি আমার অ্যাপ্লিকেশন জুড়ে স্ট্রিংগুলি ব্যবহার করছি না (যদি এটি ওয়েব কনফিগারেশনে পরিবর্তিত হয় তবে আমি সেগুলি পরিবর্তন করে সমস্ত ঘটনা ঘটাতে হবে)। একটি নমুনা এখানে:

using System.Configuration;

public static class AppSettingsGet
{    
    public static string myKey
    {
        get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
    }

    public static string imageFolder
    {
        get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
    }

    // I also get my connection string from here
    public static string ConnectionString
    {
       get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
    }
}

7

ধরে নিচ্ছি কীটি <appSettings>নোডের মধ্যে রয়েছে:

ConfigurationSettings.AppSettings["theKey"];

"লিখন" হিসাবে - সহজভাবে বলতে, না।

ওয়েবকনফিগটি এর জন্য ডিজাইন করা হয়নি, যদি আপনি ক্রমাগত কোনও মান পরিবর্তন করতে চলেছেন তবে এটি একটি স্ট্যাটিক সহায়ক শ্রেণিতে রাখুন।



0

এইভাবে আমার সমস্ত অ্যাপসেটিংকে কল করার জন্য আমি সাইট কনফিগারেশন ক্লাস। এটি কারও সাহায্য করবে যদি আমি এটি ভাগ।

"ওয়েবকনফিগ" এ নিম্নলিখিত কোডটি যুক্ত করুন

<configuration>
   <configSections>
     <!-- some stuff omitted here -->
   </configSections>
   <appSettings>
      <add key="appKeyString" value="abc" />
      <add key="appKeyInt" value="123" />  
   </appSettings>
</configuration>

আপনার সমস্ত অ্যাপসেটিংয়ের মান পাওয়ার জন্য আপনি এখন ক্লাস নির্ধারণ করতে পারেন। এটার মত

using System; 
using System.Configuration;
namespace Configuration
{
   public static class SiteConfigurationReader
   {
      public static String appKeyString  //for string type value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyString");
         }
      }

      public static Int32 appKeyInt  //to get integer value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
         }
      }

      // you can also get the app setting by passing the key
      public static Int32 GetAppSettingsInteger(string keyName)
      {
          try
          {
            return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
        }
        catch
        {
            return 0;
        }
      }
   }
}

এখন পূর্ববর্তী শ্রেণীর রেফারেন্স যুক্ত করুন এবং বেলোয়ের মতো কোনও কী কল অ্যাক্সেস করতে

string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.