Search Results

Search found 4 results on 1 pages for 'constructorargument'.

Page 1/1 | 1 

  • Why can't I inject value null with Ninjects ConstructorArgument?

    - by stiank81
    When using Ninjects ConstructorArgument you can specify the exact value to inject to specific parameters. Why can't this value be null, or how can I make it work? Maybe it's not something you'd like to do, but I want to use it in my unit tests.. Example: public class Ninja { private readonly IWeapon _weapon; public Ninja(IWeapon weapon) { _weapon = weapon; } } public void SomeFunction() { var kernel = new StandardKernel(); var ninja = kernel.Get<Ninja>(new ConstructorArgument("weapon", null)); }

    Read the article

  • Can I use Ninject ConstructorArguments with strong naming?

    - by stiank81
    Well, I don't know if "strong naming" is the right term, but what I want to do is as follows. Currently I use ConstructorArgument like e.g. this: public class Ninja { private readonly IWeapon _weapon; private readonly string _name; public Ninja(string name, IWeapon weapon) { _weapon = weapon; _name = name; } // ..more code.. } public void SomeFunction() { var kernel = new StandardKernel(); kernel.Bind<IWeapon>().To<Sword>(); var ninja = ninject.Get<Ninja>(new ConstructorArgument("name", "Lee")); } Now, if I rename the parameter "name" (e.g. using ReSharper) the ConstructorArgument won't update, and I will get a runtime error when creating the Ninja. To fix this I need to manually find all places I specify this parameter through a ConstructorArgument and update it. No good, and I'm doomed to fail at some point even though I have good test coverage. Renaming should be a cheap operation. Is there any way I can make a reference to the parameter instead - such that it is updated when I rename the parameter?

    Read the article

  • Injection of class with multiple constructors

    - by Jax
    Resolving a class that has multiple constructors with NInject doesn't seem to work. public class Class1 : IClass { public Class1(int param) {...} public Class1(int param2, string param3) { .. } } the following doesn’t seem to work: IClass1 instance = IocContainer.Get<IClass>(With.Parameters.ConstructorArgument(“param”, 1)); The hook in the module is simple, and worked before I added the extra constructor: Bind().To(); Thanks in advance...

    Read the article

  • IValueConverter from string

    - by Aleksandar Toplek
    I have an Enum that needs to be shown in ComboBox. I have managed to get enum values to combobox using ItemsSource and I'm trying to localize them. I thought that that could be done using value converter but as my enum values are already strings compiler throws error that IValueConverter can't take string as input. I'm not aware of any other way to convert them to other string value. Is there some other way to do that (not the localization but conversion)? I'm using this marku extension to get enum values [MarkupExtensionReturnType(typeof (IEnumerable))] public class EnumValuesExtension : MarkupExtension { public EnumValuesExtension() {} public EnumValuesExtension(Type enumType) { this.EnumType = enumType; } [ConstructorArgument("enumType")] public Type EnumType { get; set; } public override object ProvideValue(IServiceProvider serviceProvider) { if (this.EnumType == null) throw new ArgumentException("The enum type is not set"); return Enum.GetValues(this.EnumType); } } and in Window.xaml <Converters:UserTypesToStringConverter x:Key="userTypeToStringConverter" /> .... <ComboBox ItemsSource="{Helpers:EnumValuesExtension Data:UserTypes}" Margin="2" Grid.Row="0" Grid.Column="1" SelectedIndex="0" TabIndex="1" IsTabStop="False"> <ComboBox.ItemTemplate> <DataTemplate DataType="{x:Type Data:UserTypes}"> <Label Content="{Binding Converter=userTypeToStringConverter}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> And here is converter class, it's just a test class, no localization yet. public class UserTypesToStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (int) ((Data.UserTypes) value) == 0 ? "Fizicka osoba" : "Pravna osoba"; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return default(Data.UserTypes); } }

    Read the article

1