ProvideValue() public method

public ProvideValue ( IServiceProvider provider ) : object
provider IServiceProvider
return object
コード例 #1
0
ファイル: TypeExtension.cs プロジェクト: Hengle/Engine-Nine
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            object value = null;
            var    type  = (Type)typeExtension.ProvideValue(serviceProvider);

            if (!Instances.TryGetValue(type, out value))
            {
                Instances[type] = value = Activator.CreateInstance(type);
            }
            return(value);
        }
コード例 #2
0
ファイル: TypeExtensionTest.cs プロジェクト: nobled/mono
		public void ProvideValueWithNameWithProviderResolveSuccess ()
		{
			var x = new TypeExtension ("System.Int32");
			x.ProvideValue (new Resolver (true, true));
		}
コード例 #3
0
ファイル: TypeExtensionTest.cs プロジェクト: nobled/mono
		public void ProvideValueWithNameWithProviderResolveFail ()
		{
			var x = new TypeExtension ("System.Int32");
			x.ProvideValue (new Resolver (true, false)); // raise an error (do not return null)
		}
コード例 #4
0
ファイル: TypeExtensionTest.cs プロジェクト: nobled/mono
		public void ProvideValueWithNameWithProviderNoResolver ()
		{
			var x = new TypeExtension ("System.Int32");
			x.ProvideValue (new Resolver (false, false));
		}
コード例 #5
0
ファイル: TypeExtensionTest.cs プロジェクト: nobled/mono
		public void ProvideValueWithNameWithoutResolver ()
		{
			var x = new TypeExtension ("System.Int32");
			x.ProvideValue (null); // serviceProvider is required.
		}
コード例 #6
0
ファイル: TypeExtensionTest.cs プロジェクト: nobled/mono
		public void ProvideValueWithType ()
		{
			var x = new TypeExtension (typeof (int));
			Assert.AreEqual (typeof (int), x.ProvideValue (null), "#1"); // serviceProvider is not required.
		}