App.config: ব্যবহারকারী বনাম অ্যাপ্লিকেশন সুযোগ


91

আমি আমার প্রকল্পে App.config ফাইল যুক্ত করেছি। আমি প্রকল্প> বৈশিষ্ট্য> সেটিংস প্যানেল থেকে দুটি সেটিংস তৈরি করেছি -

এখানে চিত্র বর্ণনা লিখুন

আমি লক্ষ্য করেছি যে যখন আমি একটি সেটিং যুক্ত করছি তখন আমি স্কোপটি হিসাবে Userবা হিসাবে সংজ্ঞায়িত করতে পারি Application। -

  1. ব্যবহারকারী
  2. প্রয়োগ

যদি আমি সেটিংটি বিভাগে Userযায় সেটিকে সংজ্ঞায়িত করি userSettings,
যদি আমি সেটিংটিকে বিভাগে Applicationযায় সেভাবে এটি সংজ্ঞায়িত করিapplicationSettings

App.config

<configuration>

    <userSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting1" serializeAs="String">
                <value>Value1</value>
            </setting>
        </DemoApp.Properties.Settings>
    </userSettings>

    <applicationSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting2" serializeAs="String">
                <value>Value2</value>
            </setting>
        </DemoApp.Properties.Settings>
    </applicationSettings>

</configuration>

তবে, এই সেটিংস থেকে একইভাবে অ্যাক্সেস করা যায় .cs-

কোড

string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1;
string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;

Userএবং Applicationসুযোগের মধ্যে পার্থক্য কী এবং কোন পরিস্থিতিতে এই দুটির মধ্যে একটিকে বেছে নেওয়া উচিত?

উত্তর:


72

মূলত, কোনও প্রোগ্রাম চলাকালীন অ্যাপ্লিকেশন সেটিংস পরিবর্তন করা যায় না এবং ব্যবহারকারী সেটিংস পারে। এরপরে এই ব্যবহারকারীর সেটিংসটি সংরক্ষণ করা উচিত যাতে ব্যবহারকারীর একটি পরবর্তী অভিজ্ঞতার সাথে উপস্থাপিত করা হয় যখন সে পরবর্তীতে অ্যাপ্লিকেশনটি চালায়।

সম্পাদনা করুন: উদাহরণস্বরূপ, আপনি বিভিন্ন মডিউল দিয়ে আপনার অ্যাপ্লিকেশনটি লিখতে পারেন এবং আপনার প্রধান মডিউলটি আপনার সুরক্ষা মডিউলের সঠিক সংস্করণ ব্যবহার করছে তা নিশ্চিত করা দরকার। এর জন্য আপনি একটি অ্যাপ্লিকেশন-স্কোপ সেটিংস স্থাপন করবেন যেমন:

SecurityModuleVersion  string     Application      v1.21

কিছুক্ষণ পরে যখন আপনি সুরক্ষা মডিউলটি রিফ্যাক্টর করেন, সঠিক সুরক্ষা কার্যকর করা হচ্ছে কিনা তা নিশ্চিত করার জন্য আপনি মোতায়েন করার সময় আপনি মানটি v1.22 এ পরিবর্তন করতে পারেন

অন্যদিকে, যদি আপনার অ্যাপ্লিকেশনটিতে রঙ পরিবর্তন, ফন্ট পরিবর্তন ইত্যাদি সহ আলাদা আলাদা 'স্কিন' থাকে, তবে আপনি নীচের মতো কিছু সেট করে কোনও ব্যবহারকারী সেটআপ করতে পারেন:

ApplicationSkin        string     User              DefaultSkin

তারপরে, মিশেল যখন তার পছন্দের ত্বকে পরিবর্তন করে, অ্যাপ্লিকেশনটি তার সেটিংস মনে রাখে । বৈশিষ্ট্যগুলি এখন দেখতে লাগবে:

ApplicationSkin        string     User              HelloKittySkin

আপনি একটি উদাহরণ ব্যবহার করে ব্যাখ্যা করতে পারেন?
পরাগ মেশরাম

4
ডিফল্ট সেটিংস কনফিগারেশন ফাইলে আছে, হ্যাঁ? কিন্তু সংরক্ষিত ব্যবহারকারীর সেটিংস কোথায় সংরক্ষণ করা হয়?
কাইল ডেলানী

8
অ্যাপ্লিকেশন সেটিংস * .exe.config ফাইলে সংরক্ষণ করা হয়েছে। ব্যবহারকারীর সেটিংস সি: \ ব্যবহারকারীদের \ <ব্যবহারকারীর> \ অ্যাপডাটা \ স্থানীয় \ <কম্প্যানি নাম> \ <appname> \ <version> \ user.config (যেখানে পরবর্তীকালে সমাবেশ ফাইল থেকে টানা হয়) এ সংরক্ষণ করা হবে। লোড চলাকালীন, ব্যবহারকারী সেটিংস অ্যাপ্লিকেশন সেটিংসের চেয়ে অগ্রাধিকার নেয়।
স্ক্রোডো_ব্যাগিনস

71

অ্যাপ্লিকেশন-স্কোপ সেটিংস কেবল পঠিত হয় এবং কেবলমাত্র ডিজাইনের সময় বা অ্যাপ্লিকেশন সেশনের মধ্যে .exe.config ফাইলটি পরিবর্তন করে পরিবর্তন করা যেতে পারে। ব্যবহারকারী-স্কোপ সেটিংস, রান সময়ে যেমন আপনি কোনও সম্পত্তির মান পরিবর্তন করতে পারেন তেমন লেখা যেতে পারে। নতুন মানটি অ্যাপ্লিকেশন সেশনের সময়কালের জন্য স্থির থাকে। আপনি সেটিংস.সেভ পদ্ধতিতে কল করে অ্যাপ্লিকেশন সেশনের মধ্যে ব্যবহারকারীর সেটিংসে পরিবর্তনগুলি চালিয়ে যেতে পারেন।

এমএসডিএন-তে উত্স: সি # তে সেটিংস ব্যবহার করা হচ্ছে

ব্যবহারকারীর পছন্দসমূহ (যেমন অ্যাপ্লিকেশন বিজ্ঞপ্তি পছন্দগুলি ইত্যাদি) অবিচ্ছিন্নভাবে ব্যবহার করার জন্য ব্যবহারকারী সেটিংস সাধারণত ব্যবহৃত হয়। অ্যাপ্লিকেশন সেটিংস সাধারণত আইপিআই কী ইত্যাদির মতো আইটেমগুলির জন্য থাকে Application

@Kmote দ্বারা উল্লিখিত হিসাবে, যখন ব্যবহারকারীর সেটিংস চালিত সময়ে (মাধ্যমে settings.Save()) সংশোধন করা এবং অবিরত থাকে, তখন সেগুলি ব্যবহারকারী প্রোফাইল স্টোরেজের মধ্যে একটি ফোল্ডারে লিখিত হবে (সাধারণত সি: \ ব্যবহারকারী \ ব্যবহারকারী নাম \ অ্যাপডাটা \ স্থানীয় \ উইন্ডোজ 7 এবং তারপরে অ্যাপনাম )। প্রোগ্রামের ভিত্তিতে ফাইলটির অবস্থান নির্ধারণ করতে, দয়া করে এই পোস্টটি দেখুন


যে কোনও জীবন্ত উদাহরণটি প্রশংসিত হবে
পরাগ মেশরাম

4
এটিও চিহ্নিত করা উচিত যে সেশনগুলির মধ্যে .config ফাইল সম্পাদনা করে ব্যবহারকারীর সেটিংস পরিবর্তন করা যায় না।
কি.মি.

@ কেমোট অবশ্যই আপনি পারবেন! যদি সেশনটি বন্ধ থাকে তবে আপনি কনফিগারটি (এবং তাই ব্যবহারকারীসেটিং) পরিবর্তন করতে পারবেন। আপনি যখন আবার সেশন শুরু করবেন তখনই পরিবর্তনটি অবিচ্ছিন্ন থাকে এবং প্রোগ্রামে প্রতিবিম্বিত হয় ... আমি এখনই এটি পরীক্ষা করেছি।
রিগার্ড স্টেইন

4
@ হেলিয়াক: আমার আরও নির্ভুল হওয়া উচিত ছিল। আপনি সঠিক যে ব্যবহারকারীর সেটিংস সেশনের মধ্যে পরিবর্তন করা যেতে পারে। যাইহোক, আপনি একবার এগুলি প্রোগ্রামিকভাবে (ব্যবহার করে Settings.Save()) পরিবর্তন করলে , একটি নতুন কনফিগার ফাইল তৈরি হয়ে যায় এবং সি-তে লুকানো থাকে / buried সেই থেকে, যখনই অ্যাপ্লিকেশন শুরু হবে তখনই সেই ফাইল থেকে ব্যবহারকারী সেটিংস আঁকা হবে এবং অ্যাপকনফাইগ বা সেটিংস.সেটেটিংয়ে ম্যানুয়ালি করা কোনও পরিবর্তন উপেক্ষা করা হবে।
কিমিওট

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