本文整理汇总了C#中Burden类的典型用法代码示例。如果您正苦于以下问题:C# Burden类的具体用法?C# Burden怎么用?C# Burden使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Burden类属于命名空间,在下文中一共展示了Burden类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Resolve
public override object Resolve(CreationContext context, IReleasePolicy releasePolicy)
{
// 1. read from cache
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
var initializing = false;
try
{
initializing = init.ExecuteThreadSafeOnce();
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
var burden = CreateInstance(context, true);
cachedBurden = burden;
Track(burden, releasePolicy);
return burden.Instance;
}
finally
{
if (initializing)
{
init.EndThreadSafeOnceSection();
}
}
}
开发者ID:castleproject,项目名称:Windsor,代码行数:28,代码来源:SingletonLifestyleManager.cs
示例2: Track
protected virtual void Track(Burden burden, IReleasePolicy releasePolicy)
{
if (burden.RequiresPolicyRelease)
{
releasePolicy.Track(burden.Instance, burden);
}
}
开发者ID:castleproject,项目名称:Windsor,代码行数:7,代码来源:AbstractLifestyleManager.cs
示例3: Track
public virtual void Track(object instance, Burden burden)
{
using(@lock.ForWriting())
{
instance2Burden[instance] = burden;
}
}
开发者ID:7digital,项目名称:Castle.Windsor,代码行数:7,代码来源:AllComponentsReleasePolicy.cs
示例4: Resolve
public override object Resolve(CreationContext context, Burden burden, IReleasePolicy releasePolicy)
{
lock (slot)
{
var map = (Dictionary<IComponentActivator, object>)Thread.GetData(slot);
if (map == null)
{
map = new Dictionary<IComponentActivator, object>();
Thread.SetData(slot, map);
}
Object instance;
if (!map.TryGetValue(ComponentActivator, out instance))
{
instance = base.Resolve(context, burden, releasePolicy);
map.Add(ComponentActivator, instance);
instances.Add(burden);
}
return instance;
}
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:25,代码来源:PerThreadLifestyleManager.cs
示例5: Resolve
public virtual object Resolve(CreationContext context, Burden burden, IReleasePolicy releasePolicy)
{
var instance = CreateInstance(context, burden);
Track(burden, releasePolicy);
return instance;
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:7,代码来源:AbstractLifestyleManager.cs
示例6: GetNewInstance
private object GetNewInstance(CreationContext context, IReleasePolicy releasePolicy)
{
var burden = CreateInstance(context, true);
cachedBurden = burden;
Track(burden, releasePolicy);
return burden.Instance;
}
开发者ID:corruptmem,项目名称:Castle.Windsor,代码行数:7,代码来源:SingletonLifestyleManager.cs
示例7: ReleaseCore
public override bool ReleaseCore(Burden burden)
{
var genericType = ProxyUtil.GetUnproxiedType(burden.Instance);
var handler = type2SubHandler.GetOrThrow(genericType);
return handler.Release(burden);
}
开发者ID:roken,项目名称:Windsor,代码行数:7,代码来源:DefaultGenericHandler.cs
示例8: Resolve
public override object Resolve(CreationContext context, Burden burden, IReleasePolicy releasePolicy)
{
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
var instanceFromContext = context.GetContextualProperty(ComponentActivator);
if (instanceFromContext != null)
{
//we've been called recursively, by some dependency from base.Resolve call
return instanceFromContext;
}
object instance;
lock (ComponentActivator)
{
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
instance = base.CreateInstance(context, burden);
cachedBurden = burden;
}
Track(burden, releasePolicy);
return instance;
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:25,代码来源:SingletonLifestyleManager.cs
示例9: Resolve
public override object Resolve(CreationContext context, IReleasePolicy releasePolicy)
{
// 1. read from cache
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
var instanceFromContext = context.GetContextualProperty(ComponentActivator);
if (instanceFromContext != null)
{
//we've been called recursively, by some dependency from base.Resolve call
return instanceFromContext;
}
var initializing = false;
try
{
initializing = init.ExecuteThreadSafeOnce();
if (cachedBurden != null)
{
return cachedBurden.Instance;
}
var burden = CreateInstance(context, true);
cachedBurden = burden;
Track(burden, releasePolicy);
return burden.Instance;
}
finally
{
if (initializing)
{
init.EndThreadSafeOnceSection();
}
}
}
开发者ID:hjlfmy,项目名称:Castle.Windsor-READONLY,代码行数:35,代码来源:SingletonLifestyleManager.cs
示例10: Resolve
public override object Resolve(CreationContext context, Burden burden, IReleasePolicy releasePolicy)
{
var current = HttpContext.Current;
if (current == null)
{
throw new InvalidOperationException(
"HttpContext.Current is null. PerWebRequestLifestyle can only be used in ASP.Net");
}
var cachedBurden = current.Items[PerRequestObjectID];
if (cachedBurden != null)
{
return cachedBurden;
}
if (!PerWebRequestLifestyleModule.Initialized)
{
var message =
string.Format(
"Looks like you forgot to register the http module {0}{1}Add '<add name=\"PerRequestLifestyle\" type=\"Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor\" />' to the <httpModules> section on your web.config. If you're running IIS7 in Integrated Mode you will need to add it to <modules> section under <system.webServer>",
typeof(PerWebRequestLifestyleModule).FullName, Environment.NewLine);
throw new Exception(message);
}
var instance = base.Resolve(context, burden, releasePolicy);
current.Items[PerRequestObjectID] = burden;
PerWebRequestLifestyleModule.RegisterForEviction(this, burden);
return instance;
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:31,代码来源:PerWebRequestLifestyleManager.cs
示例11: ReleaseCore
public override bool ReleaseCore(Burden burden)
{
var genericType = ProxyUtil.GetUnproxiedType(burden.Instance);
var handler = GetSubHandler(CreationContext.CreateEmpty(), genericType);
return handler.Release(burden);
}
开发者ID:rtr0mdrn,项目名称:Windsor,代码行数:8,代码来源:DefaultGenericHandler.cs
示例12: Track
public override void Track(object instance, Burden burden)
{
var model = burden.Model;
if (burden.GraphRequiresDecommission || model.LifestyleType == LifestyleType.Pooled)
{
base.Track(instance, burden);
}
}
开发者ID:7digital,项目名称:Castle.Windsor,代码行数:8,代码来源:LifecycledComponentsReleasePolicy.cs
示例13: Track
protected override void Track(Burden burden, IReleasePolicy releasePolicy)
{
var track = burden.RequiresPolicyRelease;
burden.RequiresPolicyRelease = false;
if (track)
{
releasePolicy.Track(burden.Instance, burden);
}
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:9,代码来源:PerThreadLifestyleManager.cs
示例14: Create
public virtual object Create(CreationContext context, Burden burden)
{
var instance = InternalCreate(context);
burden.SetRootInstance(instance);
onCreation(model, instance);
return instance;
}
开发者ID:KRLacey,项目名称:Windsor,代码行数:9,代码来源:AbstractComponentActivator.cs
示例15: Dispose
public override void Dispose()
{
var localInstance = cachedBurden;
if (localInstance != null)
{
localInstance.Release();
cachedBurden = null;
}
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:9,代码来源:SingletonLifestyleManager.cs
示例16: Release
public override bool Release(Burden burden)
{
if (releaseExtensions == null)
{
return base.Release(burden);
}
var invocation = new ReleaseInvocation(burden);
InvokeReleasePipeline(0, invocation);
return invocation.ReturnValue;
}
开发者ID:dohansen,项目名称:Windsor,代码行数:11,代码来源:ExtendedHandler.cs
示例17: Create
/// <summary>
/// Creates the <see cref="ISessionFactory"/> from the configuration
/// </summary>
/// <param name="context"></param>
/// <param name="burden"></param>
/// <returns></returns>
public override object Create(CreationContext context, Burden burden)
{
//HACK:bugfix SessionFactoryActivator override Create with burden
RaiseCreatingSessionFactory();
var configuration = Model.ExtendedProperties[Constants.SessionFactoryConfiguration]
as Configuration;
var f= configuration.BuildSessionFactory();
burden.SetRootInstance(f);
//onCreation(model, instance);
return f;
}
开发者ID:gongzunpan,项目名称:infrastructure,代码行数:17,代码来源:SessionFactoryActivator.cs
示例18: Create
/// <summary>
/// Creates the <see cref="ISessionFactory"/> from the configuration
/// </summary>
/// <param name="context"></param>
/// <param name="burden"> </param>
/// <returns></returns>
public override object Create(CreationContext context, Burden burden)
{
RaiseCreatingSessionFactory();
var configuration = Model.ExtendedProperties[Constants.SessionFactoryConfiguration]
as Configuration;
var factory = configuration.BuildSessionFactory();
burden.SetRootInstance(factory);
return factory;
}
开发者ID:hconceicao,项目名称:Castle.Facilities.NHibernateIntegration3,代码行数:18,代码来源:SessionFactoryActivator.cs
示例19: Track
public virtual void Track(object instance, Burden burden)
{
using (@lock.ForWriting())
{
var oldCount = instance2Burden.Count;
instance2Burden[instance] = burden;
if (oldCount < instance2Burden.Count)
{
burden.Released += OnInstanceReleased;
}
}
}
开发者ID:firegrass,项目名称:Castle.Windsor,代码行数:12,代码来源:LifecycledComponentsReleasePolicy.cs
示例20: Track
public virtual void Track(object instance, Burden burden)
{
rwLock.AcquireWriterLock(Timeout.Infinite);
try
{
instance2Burden[instance] = burden;
}
finally
{
rwLock.ReleaseWriterLock();
}
}
开发者ID:ralescano,项目名称:castle,代码行数:12,代码来源:AllComponentsReleasePolicy.cs
注:本文中的Burden类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论