Csharp/CSharp Tutorial/Development/Context
Contextual info
<source lang="csharp">using System; using System.Runtime.Remoting.Contexts; using System.Threading; class MainClass {
static void Main(string[] args) { Context ctx = Thread.CurrentContext; Console.WriteLine("Info about context {0}", ctx.ContextID); foreach(IContextProperty itfCtxProp in ctx.ContextProperties) Console.WriteLine("-> Ctx Prop: {0}", itfCtxProp.Name); }
}</source>
Info about context 0 -> Ctx Prop: LeaseLifeTimeServiceProperty
Contextual information: ContextBoundObject
<source lang="csharp">using System; using System.Runtime.Remoting.Contexts; using System.Threading; [Synchronization] public class SynchContextClass : ContextBoundObject {
public SynchContextClass() { Context ctx = Thread.CurrentContext; Console.WriteLine("Info about context {0}", ctx.ContextID); foreach(IContextProperty itfCtxProp in ctx.ContextProperties) Console.WriteLine("-> Ctx Prop: {0}", itfCtxProp.Name); }
} class MainClass {
static void Main(string[] args) { SynchContextClass synchObj = new SynchContextClass(); }
}</source>
Info about context 1 -> Ctx Prop: LeaseLifeTimeServiceProperty -> Ctx Prop: Synchronization
Get name of current AppDomain and context ID
<source lang="csharp">using System; using System.Threading; class MainClass {
// [MTAThread] [STAThread] static void Main(string[] args) { Thread primaryThread = Thread.CurrentThread; primaryThread.Name = "ThePrimaryThread"; Console.WriteLine("Name of current AppDomain: {0}", Thread.GetDomain().FriendlyName); Console.WriteLine("ID of current Context: {0}", Thread.CurrentContext.ContextID); }
}</source>
Name of current AppDomain: main.exe ID of current Context: 0