我有一个MSMQ触发器,它打开一个独立的可执行文件。规则操作将消息ID(作为变体)作为调用参数传递。然后我使用消息ID通过Queue.ReceiveById()接收消息。MSMQ消息ID(作为变体)
一切工作正常,但有一点抓住。消息ID发送这样的:
{5EADA58F-C733-48C3-A52A-A9FA749E7ADF}\2063
但Queue.ReceiveById()函数需要消息ID看起来像这样(不带括号)
5EADA58F-C733-48C3-A52A-A9FA749E7ADF\2063
有人能向我解释什么花括号是什么意思?有没有适当的方式来转换(除去括号)?
编辑:我要明确的是,消息ID被作为字符串传递,因为它是被作为命令行参数的EXE
消息ID是一个GUID。这是一个GUID格式。一种方法是使用.ToString()方法,给它一个值,用于返回没有大括号的值。在这种情况下,它将是“D”:http://msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx –
@Ahmedilyas消息ID是字符串类型,所以我应该先将其解析为Guid,对吗?当我尝试Guid.Parse(...)时,会引发FormatException。我会绕过更多 - 你的评论绝对有帮助! – brudert