c# एक कक्षा में एक डीएल में कैसे बदलें?




dll (2)

विषय बहुत अस्पष्ट है क्योंकि मुझे यकीन नहीं है कि मैं जो करने की कोशिश कर रहा हूं उसके लिए सही शब्दावली क्या है।

मैंने एक dll डाउनलोड किया है (मेरे पास स्रोत कोड नहीं है), और एक प्रतिबिंब उपकरण का उपयोग करके, मुझे dll कार्यान्वयन में एक बग मिला। बग ठीक करना आसान है। तो मान लें कि बग यहां है:

class A 
{
    void f() { // BUG!!! }
}

क्या मेरे अपने A को लागू करने का कोई तरीका है जो बग को ठीक करेगा और अन्य A उदाहरणों को बदलने के लिए इसे रनटाइम में इंजेक्ट करेगा?



सबसे आसान तरीका उस वर्ग से उत्तराधिकारी होना होगा और अपना स्वयं का कार्यान्वयन लिखना होगा।

  class ParentClass
            {
                public void SomeMethod() { 
                   //bug here 
                }
            }

            class Child:ParentClass
            {
                new public void SomeMethod() { 
                   // I fixed it 
                }
            }

इसके बाद, अपनी कक्षा का उपयोग करें।

Child child = new Child();
child.SomeMethod();




dll