سؤال

ونظرا

public class Blah : IBlah 
{
    public Blah(decimal argument)
    {
    }
}

عند

ForRequestedType<IBlah>()
    .TheDefault.Is.OfConcreteType<Blah>()
    .WithCtorArg("argument")
    .EqualToAppSetting("argument_app_setting_key")

وبعد ذلك يلقي StructureMap الاستثناء التالي

No Default Instance defined for PluginFamily System.Decimal

هل هناك أي طريقة لاستخدام EqualToAppSetting بحجج غير سلسلة؟

هل كانت مفيدة؟

المحلول

وأنا لا أعتقد أنك تستطيع أن تفعل ذلك مع أسلوب EqualToAppSetting. هل يمكن أن ليس فقط مرجع System.Configuration ويلقي التطبيق وضع نفسك؟ مثل هذا ...

      ForRequestedType<IBlah>()
        .TheDefault.Is.OfConcreteType<Blah>()
        .WithCtorArg("blah")
        .EqualTo(Convert.ToDecimal(ConfigurationManager.AppSettings["argument_app_setting_key"]));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top