একটি এএসপি.এনইটি ওয়েবসাইটে স্ট্যাটিক ক্লাসগুলি প্রতিটি ওয়েব রিকুয়েস্টের কাছে অনন্য, নাকি যখনই প্রয়োজন হয় জিএসইডি তা নিষ্পত্তি করার সিদ্ধান্ত নেয় তখনই তারা ইনস্ট্যান্ট করা হয়?
আমার জিজ্ঞাসার কারণটি হ'ল আমি সি # এর আগে কিছু স্থির ক্লাস লিখেছিলাম এবং আচরণটি আমার প্রত্যাশার চেয়ে আলাদা। আমি স্থির ক্লাসগুলি প্রতিটি অনুরোধের জন্য অনন্য হতে পারে বলে আশাবাদী, তবে এটি মনে হয় না।
যদি তারা প্রতিটি অনুরোধের জন্য স্বতন্ত্র না হয় তবে তাদের অনুমতি দেওয়ার কোনও উপায় আছে কি?
আপডেট:
ড্রিস আমাকে যে উত্তর দিয়েছে তা হ'ল আমার যা প্রয়োজন তা হ'ল। আমি ইতিমধ্যে একটি সিঙ্গলটন ক্লাস ব্যবহার করছিলাম, তবে এটি একটি স্থির উদাহরণ ব্যবহার করছিল এবং তাই অনুরোধগুলির মধ্যে ভাগ করা হচ্ছিল এমনকি ব্যবহারকারীরা পৃথক হলেও যা এই ক্ষেত্রে খারাপ জিনিস ছিল। ব্যবহার HttpContext.Current.Items
আমার সমস্যাটি নিখুঁতভাবে সমাধান করে । ভবিষ্যতে যে কেউ এই প্রশ্নটিতে হোঁচট খাচ্ছে তার জন্য, এখানে আমার বাস্তবায়ন, সরলীকৃত এবং সংক্ষিপ্ত করা হয়েছে যাতে প্যাটার্নটি বোঝা সহজ হয়:
using System.Collections;
using System.Web;
public class GloballyAccessibleClass
{
private GloballyAccessibleClass() { }
public static GloballyAccessibleClass Instance
{
get
{
IDictionary items = HttpContext.Current.Items;
if(!items.Contains("TheInstance"))
{
items["TheInstance"] = new GloballyAccessibleClass();
}
return items["TheInstance"] as GloballyAccessibleClass;
}
}
}
filterContext.Result = new RedirectResult(...)
আপনি আপনার আইটেমগুলি হারাবেন কারণ একটি নতুন এইচটিপিপেক্সটেক্সট তৈরি হবে। এখানে আরও বিশদ: স্ট্যাকওভারফ্লো.com