可能需要使用表达式来创建对象或调用方法。
创建对象
若要创建具有类型为 .NET 类的变量,请在 表达式 形状中构造对象。 .NET 类变量的属性包括构造函数。 如果使用默认构造函数,只需像任何其他变量一样直接声明变量,例如 bool 或 int 类型之一。
如果使用采用参数的构造函数,请使用关键字 new,后跟对象类和括号中的任何参数:
new MyClass(myParam1, myParam2)
谨慎
对于某些确实具有构造函数的对象,可能不会显示 “使用默认构造函数 ”属性。 在这种情况下,将自动使用默认构造函数,如果尝试使用其他构造函数,将引发错误。
调用方法
若要调用 .NET 类对象的方法,请将点号和方法名称添加到对象引用之后,然后在括号中放入任何参数。
MyObject.MyMethod (param1)
将消息作为参数传递和使用
若要将消息作为参数传递给 .NET 类上的方法调用,首先在定义类的项目中添加对 Microsoft.XLANGs.BaseTypes.dll 的引用,然后在方法签名中使用类型 XLANGMessage。
通过引用多部分消息类型,可以使用 XLANGPart 类型访问消息的各个部分:
MyMethod(XLANGMessage myMsg)
{
XLANGPart myPart = myMsg["Part1"];
XmlDocument xmlDoc = (XmlDocument) myPart.RetrieveAs(typeof(XmlDocument));
}
在调用本身中,只需提供消息的名称,就像任何其他参数一样:
MyObject.MyMethod(myMessage)
还可以将消息部件作为 XLANGPart 类型传递。
.NET 成员调用
除了直接访问消息部分成员的情况外,您还可以访问公共成员。 若要直接访问消息部件的成员,必须将其提升为可分辨字段。
COM/COM+ 组件调用
XLANG 生成 C# 代码。 所有用户声明的 XLANG 变量都生成为 C# 变量。 除了原子事务的情况下,没有特殊行为。 当服务组件(即实现 System.EnterpriseServices.ServicedComponent 的类的实例)在原子范围内声明时,XLANG 才会生成和使用真正的 DTC COM+ 事务。
如果变量在原子范围中被引用为 L 值(即,被写入),但在外部范围内声明,则会克隆该变量以支持回滚。 但是,当对象(如 XmlDocument)作为参数传入 .NET 函数调用时,可能会被修改,因此 XLANGs 可能未能检测到该对象的写入操作,从而导致无法正确回滚。 在这种情况下,解决方法是传递引用参数等对象。
底线是组件应与其他 C# 程序的行为一样。