সি # .NET এ App.config কি? এটি কিভাবে ব্যবহার করতে?


179

আমি সি # .NET এ এমন একটি প্রকল্প করেছি যেখানে আমার ডাটাবেস ফাইলটি একটি এক্সেল ওয়ার্কবুক। যেহেতু আমার কোডিংয়ে সংযোগের স্ট্রিংয়ের অবস্থানটি হার্ড কোডিং করা হয়েছে, তাই এটি আমার সিস্টেমে এটি ইনস্টল করার জন্য কোনও সমস্যা নেই, তবে অন্যান্য সিস্টেমের ক্ষেত্রেও এটি রয়েছে।

অ্যাপ্লিকেশনটির সেটআপ শেষ হয়ে যাওয়ার পরে কি একবার ব্যবহারকারীকে কোনও পথ নির্ধারণ করার অনুরোধ জানানো যায়?

আমি যে উত্তর পেয়েছি তা হ'ল "অ্যাপ্লিকেশন.কনফিগ ব্যবহার করুন ... ... কেউ কি বলতে পারবেন যে এই অ্যাপকনফিগটি কী এবং এখানে আমার প্রসঙ্গে কীভাবে এটি ব্যবহার করবেন?


উত্তর:


190

এর সর্বাধিক সহজভাবে, app.config একটি এক্সএমএল ফাইল যা অনেক পূর্বনির্ধারিত কনফিগারেশন বিভাগ উপলব্ধ এবং কাস্টম কনফিগারেশন বিভাগগুলির জন্য সমর্থন করে। একটি "কনফিগারেশন বিভাগ" হ'ল এক্সএমএলের একটি স্নিপেট যা কিছু ধরণের তথ্য সঞ্চয় করার জন্য একটি স্কিমাযুক্ত।

সেটিংগুলি বিল্ট-ইন কনফিগারেশন বিভাগগুলি যেমন connectionStringsবা ব্যবহার করে কনফিগার করা যায় appSettings। আপনি নিজের কাস্টম কনফিগারেশন বিভাগগুলি যুক্ত করতে পারেন; এটি একটি উন্নত বিষয়, তবে দৃ strongly়ভাবে টাইপযুক্ত কনফিগারেশন ফাইলগুলি তৈরি করার জন্য অত্যন্ত শক্তিশালী।

ওয়েব অ্যাপ্লিকেশনগুলির সাধারণত একটি ওয়েবকনফিগ থাকে, যখন উইন্ডোজ জিইউআই / পরিষেবা অ্যাপ্লিকেশনগুলিতে একটি অ্যাপকনফাইগ ফাইল থাকে।

অ্যাপ্লিকেশন-স্তরের কনফিগারেশন ফাইলগুলি বিশ্বব্যাপী কনফিগারেশন ফাইলগুলি থেকে যেমন সেটিংস উত্তরাধিকার সূত্রে প্রাপ্ত হয় on

অ্যাপ.কনফিগ থেকে পড়া হচ্ছে

সংযোগের স্ট্রিংগুলির একটি পূর্বনির্ধারিত স্কিমা রয়েছে যা আপনি ব্যবহার করতে পারেন। নোট করুন যে এই ছোট স্নিপেটটি আসলে একটি বৈধ app.config (বা ওয়েবকনফিগ) ফাইল:

<?xml version="1.0"?>
<configuration>
    <connectionStrings>   
        <add name="MyKey" 
             connectionString="Data Source=localhost;Initial Catalog=ABC;"
             providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

একবার আপনি নিজের অ্যাপ কনফিগ সংজ্ঞায়িত করার পরে, আপনি এটি কনফিগারেশনম্যানেজার ক্লাস ব্যবহার করে কোডে পড়তে পারেন । ভার্চুয়াল এমএসডিএন উদাহরণগুলি দেখে ভয় দেখাবেন না; এটা আসলে বেশ সহজ।

string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;

অ্যাপ.কনফিগকে লেখা হচ্ছে

ঘন ঘন * .কনফিগ ফাইলগুলি পরিবর্তন করা ভাল ধারণা নয়, তবে মনে হয় আপনি কেবল ওয়ান-টাইম সেটআপ করতে চান।

দেখুন: সংযোগের স্ট্রিং পরিবর্তন করুন এবং রান টাইমে app.config পুনরায় লোড করুন যা connectionStringsরানটাইমে * .config ফাইলের বিভাগটি কীভাবে আপডেট করবেন তা বর্ণনা করে ।

নোট করুন যে আদর্শভাবে আপনি একটি সাধারণ ইনস্টলার থেকে এই জাতীয় কনফিগারেশন পরিবর্তনগুলি সম্পাদন করবেন।

রানটাইমে অ্যাপ.কনফিগের অবস্থান

প্রশ্ন : ধরুন আমি ম্যানুয়ালি <value>app.config এ কিছু পরিবর্তন করেছি, এটি সংরক্ষণ করুন এবং তারপরে এটি বন্ধ করুন। এখন যখন আমি আমার বিন ফোল্ডারে যাই এবং এখান থেকে .exe ফাইলটি চালু করি, কেন এটি প্রয়োগকৃত পরিবর্তনগুলি প্রতিফলিত করে না?

উত্তর : আপনি যখন কোনও অ্যাপ্লিকেশন সংকলন করেন, তখন এর অ্যাপকনফাইগটি আপনার ডিরেক্টরিটির সাথে মেলে এমন একটি নামের সাথে বিন ডিরেক্টরি 1-তে অনুলিপি করা হয় । উদাহরণস্বরূপ, যদি আপনার ইইসটির নাম "টেস্ট.এক্সএই" রাখা হয়, আপনার বিন ডিরেক্টরিতে একটি "টেক্সট.এক্সে.কনফিগ" থাকা উচিত। আপনি পুনরায় কম্পাইল না করে কনফিগারেশনটি পরিবর্তন করতে পারেন, তবে আপনাকে সংকলন সময়ে তৈরি করা কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে, মূল অ্যাপকনফাইগ নয়।

1: নোট করুন যে ওয়েব.কনফিগ ফাইলগুলি সরানো হয়নি, তবে সংকলন এবং স্থাপনার সময় একই স্থানে থাকুন। এটির একটি ব্যতিক্রম হ'ল যখন কোনও ওয়েবকনফিগ রূপান্তরিত হয়

.NET কোর

.NET কোর সহ নতুন কনফিগারেশন বিকল্পগুলি প্রবর্তিত হয়েছিল। * .কনফিগ ফাইলগুলি যেভাবে কাজ করে তা কোনও পরিবর্তন হয়েছে বলে মনে হয় না, তবে বিকাশকারীরা নতুন, আরও নমনীয় কনফিগারেশন প্যারাডিজমগুলি চয়ন করতে পারেন।


আরও দেখুন: কোডেপ্রজেক্ট / আর্টিকেলস / ১64646666/২ ফাইলগুলি কীভাবে কনফিগার করে কাজ করে তার দুর্দান্ত পর্যালোচনার জন্য
বিকেএসপুরজন

56

সহজভাবে, App.config একটি XMLভিত্তিক ফাইল ফর্ম্যাট যা অ্যাপ্লিকেশন স্তরের কনফিগারেশন ধারণ করে ।

উদাহরণ:

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="key" value="test" />
  </appSettings>
</configuration>

ConfigurationManagerনীচে কোড স্নিপেটের টুকরোটিতে প্রদর্শিত হিসাবে ব্যবহার করে আপনি কনফিগারেশনগুলি অ্যাক্সেস করতে পারেন :

var value = System.Configuration.ConfigurationManager.AppSettings["key"];
// value is now "test"

দ্রষ্টব্য: ConfigurationSettings কনফিগারেশন তথ্য পুনরুদ্ধার করার জন্য অচল পদ্ধতি।

var value = System.Configuration.ConfigurationSettings.AppSettings["key"];

21
System.Configuration.dllউল্লিখিত এপিআইগুলি ব্যবহার করার জন্য আপনাকে রেফারেন্স করতে হবে।
কেএফএল

2
একটির জন্য, আপনার অ্যাপসেটেটিং বিভাগে সংযোগের স্ট্রিংগুলি সংরক্ষণ করা উচিত নয়, তারা কানেকশনস্ট্রিংস বিভাগে যান। দু'জনের জন্য, ভিজ্যুয়াল স্টুডিওগুলি আপনার সেটিংসের জন্য শক্তিশালী টাইপযুক্ত বৈশিষ্ট্য তৈরি করবে যদি আপনি সেগুলি ডিজাইনারের মাধ্যমে যথাযথভাবে তৈরি করেন তবে আপনাকে কখনই কোনও ম্যানুয়ালি কোনও নাম লেখার দরকার নেই (যেমন আপনি উপরের কোডটিতে আছেন)।
BrainSlugs83

1
আমরা এখানে সেরা অনুশীলনের কথা বলছি না বরং ওপি সমস্যা সমাধানের কথা বলছি।
ফুরকান সাফদার

2
System.Configuration.ConfigurationManager.AppSettings["Key"]ইতিমধ্যে একটি স্ট্রিং, ToString()এটি কল করা নিরর্থক।
বোগদান স্টেনসেকু

4

আমি কিছু উত্তর যুক্ত করতে সমস্ত উত্তর থেকে নিখোঁজ ছিলাম - যদিও আপনি তা জানার সাথে সাথে এটি নির্বোধ এবং সুস্পষ্ট বলে মনে হচ্ছে:

ফাইলটির নাম "App.config" বা "app.config" রাখতে হবে এবং আপনার প্রোজেক্টে যেমন একই প্রোগ্রামে অবস্থিত হতে পারে যেমন প্রোগ্রামসিএস।

আমি জানি না যে অন্যান্য অবস্থানগুলি সম্ভব কিনা, অন্যান্য নামগুলি (যেমন ওডিপিএন ডকুমেন্টেশনে প্রস্তাবিত অ্যাপ্লিকেশন.কনফ) আমার পক্ষে কাজ করে নি।

পুনশ্চ. আমি ভিজ্যুয়াল স্টুডিও কোড দিয়ে শুরু করেছি এবং "ডটনেট নতুন" দিয়ে একটি নতুন প্রকল্প তৈরি করেছি। এই ক্ষেত্রে কোনও কনফিগারেশন ফাইল তৈরি করা হয়নি, আমি নিশ্চিত যে অন্যান্য ক্ষেত্রে রয়েছে। PPS। কনফিগার ফাইলটি পড়তে সক্ষম হতে আপনাকে একটি নুগেট প্যাকেজ যুক্ত করতে হতে পারে, নেট নেট এর ক্ষেত্রে এটি "ডটনেট অ্যাড প্যাকেজ সিস্টেম। কনফিগারেশন। কনফিগারেশনম্যানেজার - রূপান্তর 4.5.0"


এই আমি খুঁজছিলাম ছিল। এটি কী স্তরে অন্তর্ভুক্ত করা উচিত তা জানা দরকার। কিছু প্রোগ্রাম / ফ্রেমওয়ার্কগুলি ফোল্ডারগুলির মতো দেখতে থাকে/resources
এলেক্স

3

App.Config একটি এক্সএমএল ফাইল যা আপনার আবেদনের জন্য কনফিগারেশন ফাইল হিসাবে ব্যবহৃত হয়। অন্য কথায়, আপনি কোডের (এবং পুনরায় সংশোধন) পরিবর্তন না করে আপনি যে কোনও সেটিংস পরিবর্তন করতে চাইতে পারেন এটির ভিতরে। এটি প্রায়শই সংযোগের স্ট্রিংগুলি সঞ্চয় করতে ব্যবহৃত হয়।

কীভাবে এটি করা যায় তার এই এমএসডিএন নিবন্ধটি দেখুন ।


1

আপনি অ্যাপ্লিকেশনটিতে কীগুলি অ্যাক্সেস করতে পারেন using কনফিগ ব্যবহার করে:

ConfigurationSettings.AppSettings["KeyName"]

এ alook নিন এই থ্রেড


16
এটি এখন অপ্রচলিত হিসাবে বিবেচিত
মিকাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.