নির্ভরতা ইনজেকশনটি কীভাবে সরাসরি সি # এর মতো ভাষার মধ্যে সংহত করা যায় সে সম্পর্কে আমি কিছুটা ভাবছিলাম। আমি একটি সম্ভাব্য সমাধান নিয়ে এসেছি যা সম্পর্কে আমি আপনার মতামত শুনতে চাই। আমি অনেক নির্ভরতা ইনজেকশন ফ্রেমওয়ার্ক ব্যবহার করি নি তাই এমন কিছু হতে পারে যা আমি উপেক্ষা করছি
যাইহোক, ধারণাটি কোনও কীওয়ার্ড ব্যবহার করে বৈশিষ্ট্যগুলিকে "ইনজেক্টেবল" হিসাবে ঘোষণা করতে সক্ষম হবে। যখন কোনও বস্তু তাত্ক্ষণিকভাবে স্থাপন করা হয়, এবং সেই সম্পত্তিটি কনস্ট্রাক্টর বা অবজেক্ট ইনিশিয়ালাইজারের মাধ্যমে আরম্ভ করা হয় না, এটি কিছু বিশ্বব্যাপী পরিষেবা থেকে সেই সম্পত্তি ধরণের উদাহরণের জন্য অনুরোধ করে।
একইভাবে আপনি সেই সেবার বিভিন্ন ধরণের হ্যান্ডলারের নিবন্ধন করেন যাতে আপনি ইনজেকশনের সম্পত্তি প্রকারটি ইনস্ট্যান্ট করতে পারেন।
এই ধরণের আর্কিটেকচার আইএমও ব্যবহার করার উল্টো দিকটি এটি যথেষ্ট নমনীয় এবং সহজেই ব্যবহারযোগ্য। খারাপ দিকটি হ'ল প্রতিবার আপনি ইনজেকশনযুক্ত কোনও ক্লাস শুরু করার সময় সিঙ্গলটনে কলআউট করার কিছুটা ওভারহেড থাকতে পারে।
তারপরে আবার এটি কেবল এমন ক্লাসগুলির জন্য একটি সমস্যা যা উচ্চ পারফরম্যান্স সমাধানে ঘন ঘন ইনস্ট্যান্ট হয়ে যায় তাই এটি কোনও সমস্যার বেশি হওয়া উচিত নয়। সম্ভবত আপনি উদাহরণস্বরূপ কোনও ধরণের কারখানা ব্যবহার করতে পারেন।
চিন্তাভাবনা, সমস্যা, প্রশ্ন, আরও ভাল ধারণা?
কোড
public class SomeClass
{
public SomeClass()
{
//implicit behavior if Animal is not set in constructor or initializer
this.Animal = GlobalInjector.Get(this,typeof(Mammal))
}
public injectable Mammal Animal
{
get;
set;
}
}
GlobalInjector.Register(typeof(Mammal), () => return new Mammal(someParameter));