From 8faa1d55ca1507ae4913e5476f21fbcd83e70bfe Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Thu, 24 Jun 2010 12:40:11 +0000 Subject: QPID-2589 - Patch from Chuck Rolke Visual Basic example added, UUID support added, C# Hello World example added. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957531 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp | 30 ++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'cpp/bindings/qpid/dotnet/src') diff --git a/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp b/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp index d463e668c3..c4587fe0f7 100644 --- a/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +++ b/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp @@ -221,7 +221,25 @@ namespace Messaging { } break; - + case System::TypeCode::Object : + { + // + // Derived classes + // + if ("System.Guid" == typeP->ToString()) + { + cli::array ^ guidBytes = ((System::Guid)managedValue).ToByteArray(); + pin_ptr pinnedBuf = &guidBytes[0]; + ::qpid::types::Uuid newUuid = ::qpid::types::Uuid(pinnedBuf); + qpidVariant = newUuid; + } + else + { + throw gcnew System::NotImplementedException(); + } + } + break; + default: throw gcnew System::NotImplementedException(); @@ -318,6 +336,11 @@ namespace Messaging { } case ::qpid::types::VAR_UUID: + { + System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str()); + System::Guid ^ newGuid = System::Guid(elementValue); + dict[elementName] = newGuid; + } break; } } @@ -406,6 +429,11 @@ namespace Messaging { } case ::qpid::types::VAR_UUID: + { + System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str()); + System::Guid ^ newGuid = System::Guid(elementValue); + (*managedList).Add(newGuid); + } break; } } -- cgit v1.2.1