প্রতিবিম্বের মাধ্যমে কি আমি একটি ব্যক্তিগত সম্পত্তি সেট করতে পারি?
public abstract class Entity
{
private int _id;
private DateTime? _createdOn;
public virtual T Id
{
get { return _id; }
private set { ChangePropertyAndNotify(ref _id, value, x => Id); }
}
public virtual DateTime? CreatedOn
{
get { return _createdOn; }
private set { ChangePropertyAndNotify(ref _createdOn, value, x => CreatedOn); }
}
}
আমি নিম্নলিখিতটি চেষ্টা করেছি এবং এটি কার্যকর হয় না, যেখানে t
এক ধরণের প্রতিনিধিত্ব করে Entity
:
var t = typeof(Entity);
var mi = t.GetMethod("set_CreatedOn", BindingFlags.Instance | BindingFlags.NonPublic);
আমার ধারণা আমি এটি করতে পারি তবে আমি এটি কার্যকর করতে পারি না।
2
আমি জানি যে এটি দেরি হয়ে গেছে, তবে এই চিন্তাভাবনার জন্য একটি প্রয়োজনীয়তা পেয়েছি যে আমি আমার 'কেন' ভাগ করব। কিছু তৃতীয় পক্ষের সফ্টওয়্যারটিতে আমার অসুবিধা কাটিয়ে উঠতে হবে। বিশেষত, আমি স্ফটিক রিপোর্টগুলি এক্সপোর্টটোস্ট্রিম পদ্ধতিটি ব্যবহার করছিলাম। এই পদ্ধতিটি যেভাবে লেখা হয়েছিল, প্রবাহের অভ্যন্তরীণ বাফারে অ্যাক্সেসের অনুমতি ছিল না। ব্রাউজারে প্রতিবেদনটি প্রেরণ করতে, আমাকে স্ট্রিমটি একটি নতুন বাফারে (100 কে +) কপি করতে হয়েছিল, তারপরে এটি প্রেরণ করতে হবে। প্র্রাইজ অবজেক্টে প্রাইভেট '_ এক্সপোজেবল' ক্ষেত্রটি 'সত্য' হিসাবে সেট করে আমি প্রতিটি অনুরোধে 100 কে + বরাদ্দ সংরক্ষণ করে সরাসরি অভ্যন্তরীণ বাফারটি প্রেরণ করতে সক্ষম হয়েছি।
—
রায়
কেন? ধরা যাক আপনার সমস্ত ডোমেন অবজেক্টে আপনার আইডির বৈশিষ্ট্যে আপনার ব্যক্তিগত সেটটার রয়েছে এবং আপনি সংগ্রহস্থল পরীক্ষাগুলি প্রয়োগ করতে চান। তারপরে কেবল আপনার সংগ্রহস্থল পরীক্ষা প্রকল্পে আপনি আইডি সম্পত্তি সেট করতে সক্ষম হতে চাইবেন।
—
বৌনাভ
অন্য ব্যবহারের পরিস্থিতি: ডেটা আমদানির সময় স্বয়ংক্রিয়ভাবে উত্পন্ন ক্ষেত্রগুলি "তৈরির তারিখ" সেট করা setting
—
এভিনিস
আর যদি সম্ভব হয় তবে আমি কেন আগ্রহী। এই প্রশ্নটি শেষ করেই আমি শেষ করেছি।
—
কালেব মাউয়ার