是否可以在运行时扩展或修改C#类的代码?
我的问题专门针对Monkey Patching/Duck Punching或元对象编程(MOP),因为它发生在Groovy,Ruby等脚本语言中.
我尝试向ExpandoObject添加一个动态方法,它将返回属性(动态添加)给它,但它总是给我错误.
我在这里做错了吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Dynamic;
namespace DynamicDemo
{
class ExpandoFun
{
public static void Main()
{
Console.WriteLine("Fun with Expandos...");
dynamic student = new ExpandoObject();
student.FirstName = "John";
student.LastName = "Doe";
student.Introduction=new Action(()=>
Console.WriteLine("Hello my name is {0} {1}",this.FirstName,this.LastName);
);
Console.WriteLine(student.FirstName);
student.Introduction();
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译器正在标记以下错误:错误1
关键字"this"在静态属性,静态方法或静态字段初始值设定项中无效
D:\ rnd\GettingStarted\DynamicDemo\ExpandoFun.cs 20 63 DynamicDemo
如何从另一个存储过程进行异步调用?
假设我有两个存储过程,SP1和SP2(这是一个长时间运行的存储过程,需要很长时间才能执行,并且不会返回任何结果).
存储过程SP1的定义如下:
CREATE PROCEDURE SP1
AS
BEGIN
--custom business logic
--CALL to SP2, but async
EXEC SP2
END
Run Code Online (Sandbox Code Playgroud)
如何在SQL Server 2008/2012中像上面那样对SP进行非阻塞/异步调用?
我想通过将它绑定到特定环境来保护我的程序集(dll).假设我有一个dll(BizLogic.dll),我想让我的共同开发者可以在组织内使用它.但我不希望别人在我的组织外使用它.
有没有办法解决这个问题?
提前致谢.
- 穆罕默德