本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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;
}
示例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();
}
示例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;
}