当前位置: 首页>>代码示例>>C#>>正文


C# IRegistration.CreateInstance方法代码示例

本文整理汇总了C#中IRegistration.CreateInstance方法的典型用法代码示例。如果您正苦于以下问题:C# IRegistration.CreateInstance方法的具体用法?C# IRegistration.CreateInstance怎么用?C# IRegistration.CreateInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IRegistration的用法示例。


在下文中一共展示了IRegistration.CreateInstance方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetInstance

		/// <summary>
		/// Gets the instance from cache, if available, otherwise creates a new
		/// instance and caches it.
		/// </summary>
		/// <param name="registration">The creator (registration) to create a new instance.</param>
		/// <returns>The instance.</returns>
		public object GetInstance(IRegistration registration)
		{
			Cache cache = HttpRuntime.Cache;

			string key = registration.Key;
			object instance = cache[key];
			if (instance == null)
			{
				lock (_lock)
				{
					instance = cache[key];
					if (instance == null)
					{
						instance = registration.CreateInstance();

						if (_expiresOn == Cache.NoAbsoluteExpiration &&
							_duration == Cache.NoSlidingExpiration)
							_expirationKind = Expires.None;

						switch (_expirationKind)
						{
							case Expires.None:
								cache.Insert(key, instance, _dependencies, Cache.NoAbsoluteExpiration,
										Cache.NoSlidingExpiration, _priority, _onRemoveCallback);
								break;

							case Expires.OnDateTime:
								cache.Insert(key, instance, _dependencies, _expiresOn,
										Cache.NoSlidingExpiration, _priority, _onRemoveCallback);
								break;

							case Expires.AfterFixedDuration:
								cache.Insert(key, instance, _dependencies, DateTime.Now.Add(_duration),
										Cache.NoSlidingExpiration, _priority, _onRemoveCallback);
								break;

							case Expires.AfterSlidingDuration:
								cache.Insert(key, instance, _dependencies, Cache.NoAbsoluteExpiration,
									_duration, _priority, _onRemoveCallback);
								break;
						}

					}
				}
			}

			return instance;
		}
开发者ID:ehsan-davoudi,项目名称:webstack,代码行数:54,代码来源:CachedLifetime.cs

示例2: GetInstance

        /// <summary>
        /// Gets an instance from the thread local storage, or creates a new instance if not found.
        /// </summary>
        /// <param name="creator">The IInstanceCreate to use to get the Key and create new if required.</param>
        /// <returns>The instance.</returns>
        public object GetInstance(IRegistration creator)
        {
            object instance = null;

            // if it is a new thread then the localStorage needs to be initialized;
            if (localStorage == null)
                localStorage = new Dictionary<string,object>();
 
            if (!localStorage.TryGetValue(creator.Key, out instance))
            {
                instance                  = creator.CreateInstance();
                localStorage[creator.Key] = instance;
            }

            return instance;
        }
开发者ID:ehsan-davoudi,项目名称:webstack,代码行数:21,代码来源:ThreadLocalStorageLifetime.cs

示例3: GetInstance

		public object GetInstance(IRegistration registration)
		{
			object instance;
			if (!RequestLifetimeInstances.TryGetValue(registration.Key, out instance))
			{
				lock (_lock)
				{
					if (!RequestLifetimeInstances.TryGetValue(registration.Key, out instance))
					{
					    instance = registration.CreateInstance();
						RequestLifetimeInstances[registration.Key] = instance;
					}
				}
			}

			return instance;
		}
开发者ID:ehsan-davoudi,项目名称:webstack,代码行数:17,代码来源:RequestLifetime.cs

示例4: GetInstance

        /// <summary>
        /// Gets the instance from the Session, if available, otherwise creates a new
        /// instance and stores in the Session.
        /// </summary>
        /// <param name="registration">The creator (registration) to create a new instance.</param>
        /// <returns>The instance.</returns>
        public object GetInstance(IRegistration registration)
        {
            object instance = Session[registration.Key];
            if (instance == null)
            {
                lock (_lock)
                {
                    instance = Session[registration.Key];
                    if (instance == null)
                    {
                        instance             = registration.CreateInstance();
                        Session[registration.Key] = instance;
                    }
                }
            }

            return instance;
        }
开发者ID:jlaanstra,项目名称:Munq,代码行数:24,代码来源:SessionLifetime.cs

示例5: GetInstance

 /// <summary>
 /// Always creates a new instance.
 /// </summary>
 /// <param name="registration">The creator (registration) that can create an instance</param>
 /// <returns>The new instance.</returns>
 public object GetInstance(IRegistration registration)
 {
     return registration.CreateInstance();
 }
开发者ID:volkanceylan,项目名称:Serenity,代码行数:9,代码来源:AlwaysNewLifetime.cs

示例6: GetInstance

        /// <summary>
        /// Gets the instance from the Request Items, if available, otherwise creates a new
        /// instance and stores in the Request Items.
        /// </summary>
        /// <param name="registration">The creator (registration) to create a new instance.</param>
        /// <returns>The instance.</returns>
        public object GetInstance(IRegistration registration)
        {
            object instance = Context.Items[registration.Key];
            if (instance == null)
            {
                lock (_lock)
                {
                    instance = Context.Items[registration.Key];
                    if (instance == null)
                    {
                        instance                   = registration.CreateInstance();
                        Context.Items[registration.Key] = instance;
                    }
                }
            }

            return instance;
        }
开发者ID:jlaanstra,项目名称:Munq,代码行数:24,代码来源:RequestLifetime.cs


注:本文中的IRegistration.CreateInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。