private BlobHandle GetFieldSignatureBlobHandle(FieldDesc field) { var fieldDef = field.GetTypicalFieldDefinition(); var embeddedSigData = field.GetEmbeddedSignatureData(); EmbeddedSignatureDataEmitter signatureDataEmitter; if (embeddedSigData != null && embeddedSigData.Length != 0) { signatureDataEmitter = new EmbeddedSignatureDataEmitter(embeddedSigData, this); } else { signatureDataEmitter = EmbeddedSignatureDataEmitter.EmptySingleton; } BlobBuilder memberRefSig = new BlobBuilder(); EncodeFieldSignature(memberRefSig, field.FieldType, signatureDataEmitter); if (!signatureDataEmitter.Complete) { throw new ArgumentException(); } var sigBlob = _metadataBuilder.GetOrAddBlob(memberRefSig); return(sigBlob); }
public override EmbeddedSignatureData[] GetEmbeddedSignatureData() { return(_fieldDef.GetEmbeddedSignatureData()); }