الوحدة: تمرير المعلمات إلى مُنشئ العمر المخصص ، في ملف تكوين XML

StackOverflow https://stackoverflow.com/questions/3178394

سؤال

لقد كتبت بلدي customlifetimemanager مثل هذا:

public class CustomLifetimeManager <T> : LifetimeManager
{
    private readonly string _arg;

    public CustomLifetimeManager(string arg)
    {
      _arg = arg;
    }
}

الآن ، يعمل بسهولة تكوين الحاوية برمجيًا ، ولكن كيف تضافها في ملف التكوين مثل ما يلي؟

<type type="myTime"
      mapTo="myImpl">
      <lifetime type="CustomLifetimeManager"/>
</type>
هل كانت مفيدة؟

المحلول

تحتاج إلى إضافة فئة ثانية: typeconverter. هذه الفئة مسؤولة عن أخذ سلسلة وتحويلها إلى أي نوع تريده. بمجرد تنفيذه ، يمكنك بعد ذلك القيام بشيء مثل هذا في ملف التكوين الخاص بك:

<register type="MyType" mapTo"MyImpl">
  <lifetime typeConverter="CustomLifetimeManagerConverter" value="arg" />
</register>

ومن هناك يجب أن يعمل فقط (على افتراض أن التهيئة يمكن أن تجد محول النوع مثل أي نوع آخر).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top