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


C# Burden类代码示例

本文整理汇总了C#中Burden的典型用法代码示例。如果您正苦于以下问题:C# Burden类的具体用法?C# Burden怎么用?C# Burden使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Burden类属于命名空间,在下文中一共展示了Burden类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


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