我有一个Delphi XE5(更新2)程序创建使用IDE的标准'文件|新增|其他| DataSnap服务器| DataSnap REST应用程序'向导。德尔福在REST服务器枚举类型
我似乎无法让枚举类型在用作服务器方法的参数时工作。所有其他服务器方法的工作方式,如将其他类作为参数,字符串等的方法工作。当我尝试从Web浏览器调用具有枚举参数的方法时,我收到错误消息'Project Project1.exe raised exception class TDBXError with message 'TServerMethods1.EnumString method not found in the server method list'
。
这里是我的基本测试代码:
type
{$METHODINFO ON}
TMyEnum=(meOne, meTwo);
TServerMethods1 = class(TDataModule)
private
{ Private declarations }
public
{ Public declarations }
function EchoString(Value: string): string;
function ReverseString(Value: string): string;
function EnumString(const AEnum: TMyEnum): string;
end;
{$METHODINFO OFF}
然而,是什么奇怪的是,如果它们被包含在另一个类中,然后这个类传递参数给我的方法,我可以得到枚举类型的工作。如果我将枚举参数更改为一个整数,那么这项工作,但我真的不想这样做。
奇怪的是,在枚举类虽然而非方法paramters性工作。我可以忍受这一点虽然。感谢您的帮助。 – 2014-10-28 10:19:43
你是如何将该类传递给该方法的?什么是方法签名?你使用GET还是另一个http动词?根据你的操作方式,当你将一个对象传递给一个方法时,它首先通过一个解串器,而解串器可能支持枚举,即使Datasnap路由器没有。 – 2014-10-28 10:37:38