الوحدة: تمرير المعلمات إلى مُنشئ العمر المخصص ، في ملف تكوين XML
-
02-10-2019 - |
سؤال
لقد كتبت بلدي 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>
ومن هناك يجب أن يعمل فقط (على افتراض أن التهيئة يمكن أن تجد محول النوع مثل أي نوع آخر).
لا تنتمي إلى StackOverflow