• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# Burden类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Bus类代码示例发布时间:2022-05-24
下一篇:
C# BundleResponse类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap