Determine sobject Type From Id Using SOAP API
best solution I've come up with so far is to use .describeGlobal() like this:
DescribeGlobalResult dgr = binding.describeGlobal();
DescribeGlobalSObjectResult dgsr = dgr.sobjects.FirstOrDefault(x =>
string.IsNullOrEmpty(x.keyPrefix) ? false : id.StartsWith(x.keyPrefix));
if (dgsr != null)
{
switch (dgsr.name)
{
case "custom1__c":
...
break;
case "custom2__c":
...
break;
case "custom3__c":
...
break;
default:
...
break;
}
}