public void TestLock() { var c = new CodeDomGenerator(); c.AddNamespace("Samples").AddClass("cls") .AddMethod(MemberAttributes.Static | MemberAttributes.Public, (System.IO.MemoryStream ms) => "foo", Emit.@lock((System.IO.MemoryStream ms) => ms, Emit.stmt(() => Console.WriteLine("using")) ) ) .AddMethod(MemberAttributes.Static | MemberAttributes.Public, () => "zoo", Emit.@lock(() => string.Intern("asdflaskj"), Emit.stmt(() => Console.WriteLine("using")) ) ) ; Console.WriteLine(c.GenerateCode(CodeDomGenerator.Language.CSharp)); Console.WriteLine(c.GenerateCode(CodeDomGenerator.Language.VB)); var ass = c.Compile(); Assert.IsNotNull(ass); Type TestClass = ass.GetType("Samples.cls"); Assert.IsNotNull(TestClass); }