private EvidenceBase GetHostEvidenceNoLock(Type type) { EvidenceTypeDescriptor evidenceTypeDescriptor = this.GetEvidenceTypeDescriptor(type); if (evidenceTypeDescriptor != null) { if (evidenceTypeDescriptor.HostEvidence != null) { return(evidenceTypeDescriptor.HostEvidence); } if ((this.m_target != null) && !evidenceTypeDescriptor.Generated) { using (new EvidenceUpgradeLockHolder(this)) { evidenceTypeDescriptor.Generated = true; EvidenceBase base2 = this.GenerateHostEvidence(type, evidenceTypeDescriptor.HostCanGenerate); if (base2 != null) { evidenceTypeDescriptor.HostEvidence = base2; Evidence target = (this.m_cloneOrigin != null) ? (this.m_cloneOrigin.Target as Evidence) : null; if (target == null) { return(base2); } using (new EvidenceLockHolder(target, EvidenceLockHolder.LockType.Writer)) { EvidenceTypeDescriptor descriptor2 = target.GetEvidenceTypeDescriptor(type); if ((descriptor2 != null) && (descriptor2.HostEvidence == null)) { descriptor2.HostEvidence = base2.Clone(); } } } return(base2); } } } return(null); }