我有一個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