On Jun 12, 2011, at 8:40 PM, Andreas Jung wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Seltsame Frage....bei XML-RPC werden immer noch Methoden mit einer festen Signatur aufgerufen und der Client muss die Parameter analog call-by-value übergeben. Wieso willst Du also hier ein Objekt reinstecken...sorry, das macht keinen Sinn im Kontext von XML-RPC.
Macht es sehr wohl, wenn man die Frage wirklich gelesen haette. Plus die Doku. Florian ist auf der Suche nach einer customisierten Serialisierung/De-Serialisierung von Objektzustaenden. Da geht es nicht um irgendwelche Methodenaufrufe von durch die Gegend gereichten Objektreferenzen... Leider scheint es nicht moeglich zu sein mittels zB des Pickle-Protokolls "dazwischenzugraetschen". @Florian Unter Umstaenden koennte dir JSON hier helfen. Das built-in-json erlaubt naemlich sowas. Du muesstest fuer deine entsprechenden Typen eine Serialisierung progarmmieren, zB indem du auf eine Methode wie __json__ zurueckgreifst, die dann zB so aussieht: class Foo(object): def __json__(self): res = { some_property : self.some_property } res.update(self.__dict__) return res Dann musst du in jeder XMLRPC-Methode/Funktion den Rueckgabewert "jsonifizieren". Das kann man zB durch einen Dekorator vereinfachen, oder gar einer Metaklasse. Der Vorteil des Ganzen: JSON selbst regelt schon den rekursiven Abstieg in die ueblichen Typen. Achtung: du musst die speziellen Objekte von XMLRPC (DateTime & Binary) natuerlich ebenfalls behandeln! Diez