0

Azure Service Bus トピックにサブスクライブしており、Python クライアントから送信されたオブジェクトを取得しようとしています。しかし、私の受信側では、次のようなものしか得られません。

<__main__.User object at 0x02F694F0>
<models.AssetPayload object at 0x038EA930>

Pythonと.NETで受信してみました。ここに私が試したもののダミーコードがあります:

class User(object):
    def __init__(self, user_id, name):
        self.user_id = user_id
        self.name = name


user = User('123456', 'Shaphil')

# Send Message to 'myTopic'
msg = Message(bytes(user))
bus_service.send_topic_message('myTopic', msg)

# Receive Messages
msg = bus_service.receive_subscription_message('myTopic', 'AllMessages', peek_lock=False)
print msg.body

C# でダミー コードを受け取る:

var message = subscriptionClient.Receive();
var json = new StreamReader(message.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();

Console.WriteLine(json);

送信者から送信されたユーザー オブジェクト (user_id と名前) を取得するにはどうすればよいですか?

4

2 に答える 2

0

簡単な解決策は、そのインスタンスbytes()のメンバーを呼び出すことです。.__dict__これは標準の Pythondictであり、クラスが単純な場合は、JSON のようにシリアライズ可能になります"{'user_id': '123456', 'name': 'Shaphil'}"

Messageオブジェクトを作成するには、次のコード スニペットを試してください。

msg = Message(bytes(user.__dict__))

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2016-06-22T05:50:06.163 に答える