我最近一直在做一些TIBCO开发,并想知道转换到/来自TIBCO消息的最佳方式是什么?
这就是我目前正在做的事情,但我知道必须有更好的方法来做到这一点。但是我的大脑现在已经被炒了,在Bing / Google或SO上搜索并没有返回任何有用的内容。
public static Envelope ParseEnvelope(Message msg)
{
try
{
var field = msg.GetField("Envelope");
if(field == null) throw new ArgumentException("msg does not contain Envelope field", "msg");
var envMsg = field.Value as Message;
if(envMsg == null) throw new ArgumentException("msg.Envelope field is null or not a Message", "msg");
var envTypeField = envMsg.GetField("EnvelopeEventId");
if (envTypeField == null) throw new ArgumentException("msg.Envelope does contain EnvelopeEventId field");
var envType = envTypeField.Value as String;
if (envType == null) throw new ArgumentException("msg.Envelope.EnvelopeEventId field is null or not a String", "msg");
var env = new Envelope(envType);
}
任何帮助或指示都表示赞赏!
现在我正在考虑创建我自己的AutoMapper类型来转换To / From消息,这些消息将查看TIBCO消息根目录中的特定“字段”以获取它应转换为的类,然后使用反射(第一次,如果不在缓存中)递归该类的属性树(如果任何属性不是值类型)