Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF REST API返回的.net应用程序类型_.net_Wcf_Api_Rest_Int - Fatal编程技术网

WCF REST API返回的.net应用程序类型

WCF REST API返回的.net应用程序类型,.net,wcf,api,rest,int,.net,Wcf,Api,Rest,Int,我有一个API,它可以返回多个我事先不知道的东西,所以我必须将其作为返回类型System.Object 对于某些类型,我有一些问题。就像它返回不同的对象一样,这很好,但是当它返回一个System.Int32时,它不工作并告诉我: Cannot serialize parameter of type 'System.Int32' because it is not the exact type 'System.Object' in the method signature and is not i

我有一个API,它可以返回多个我事先不知道的东西,所以我必须将其作为返回类型
System.Object

对于某些类型,我有一些问题。就像它返回不同的对象一样,这很好,但是当它返回一个
System.Int32
时,它不工作并告诉我:

Cannot serialize parameter of type 'System.Int32' because it is not the exact type 'System.Object' in the method signature and is not in the known types collection.
有什么想法吗


我知道我们可以使用ServiceKnownType,但我想知道是否有其他方法可以做到这一点?我需要这个…中的所有现有类型(int、bool、string等)

您可以制作一个简单的if语句,检查它是否为int,然后您可以将其转换为对象。顺便说一下,整数在成为字符串之前不能成为对象,因此如果我这样做,我会做一个简单的:

blah.toString();

bam您现在可以将其用作对象。

不要返回服务合同上的System.object类型,即使它是WCF 4 REST。默认序列化程序/格式化程序如何为合同生成响应

您可以返回字节数组,将System.Object转换为字符串并返回它。无论如何,您始终可以将对象序列化为XML或JSON,并以字符串形式返回

也可以用同样的问题链接到论坛,也许它可以帮助你:

我不知道为什么它适用于对象(我们创建的本地对象),但不适用于整数、双精度、字符串。这是因为我不知道API会返回什么。。。它可以返回一个对象、一个字符串、一个int等等。。。这就是为什么我把System.Object作为返回类型。我真的不能在字符串中强制转换,以防它是返回的对象?我想要同样的API来做这些。。。所以我需要一个可以将所有内容都作为System.Object的类型,但它不能与int32和其他类型一起工作。不要使用System.Object,因为WCF子系统不知道如何序列化它。也许WCF 4 REST可以,但不管怎样,这是一种糟糕的做法。您可以创建自己的对象,例如使用名称“Details”,并在其中封装所有您需要的内容。然后你所有的合同都可以使用它,你可以手动序列化它,或者说WCF如何做。这在我的情况下可以工作吗?像在某些情况下一样,服务将返回到API:int或string(或任何类型)和其他cases对象。不完全理解您的意思,但这种方法以前是有效的。为什么你不应该这么做?!因为我的服务可以返回每种类型。。。我事先不知道。。。这取决于我们在参数中传递的内容,它将执行一些操作,可能返回一个int,可能返回一个字符串,可能返回一个对象(不是System.object),所以这就是为什么我将System.object作为API返回的类型,因为我事先不知道它将返回什么。。。我的解中大概有100个衍射物体。。。。它还可能返回列表。如果我正在返回另一个对象,我不知道它将返回什么。。。我只需要一个类型,可以采取一切。你有问题的价值类型,但不是引用类型?字符串是引用类型,所以这是奇怪的部分。是值类型,int,double,long等。。。当我的服务返回一个类型为int、double、long等的对象时,它会犯这个错误。否则就好了。