This seems a bit clumsy, but the metadata cache now throws an exception if the class id/field name pair isn't valid for GetFieldId2(). So we check first in cases where we want a zero if not found.
privateGetFlidIfPossible ( intclid, stringfieldName, IFwMetaDataCacheManagedmdc ) : int