void AssertMemberRef(MemberRef mRef, MemberRefType type, int id, IReadOnlyList <int> arrayDim = null, IReadOnlyList <TypeParamRef> typeParams = null) { Assert.AreEqual(mRef.Type, type); Assert.AreEqual(mRef.ID, id); Assert.That(mRef.ArrayDimensions, Is.EquivalentTo(arrayDim ?? Empty <int> .List)); Assert.AreEqual(typeParams?.Count ?? 0, mRef.TypeParams.Count); for (int i = 0; i < mRef.TypeParams.Count; i++) { TypeParamRef expRef = typeParams[i]; TypeParamRef actRef = mRef.TypeParams[i]; Assert.AreEqual(expRef.TypeParamName, actRef.TypeParamName); if (expRef.MemberRef != null) { AssertMemberRef(actRef.MemberRef, expRef.MemberRef.Type, expRef.MemberRef.ID, expRef.MemberRef.ArrayDimensions, expRef.MemberRef.TypeParams); } else { Assert.IsNull(actRef.MemberRef); } } }
public MemberRef(string name, MemberRefType type, int id, IReadOnlyList <int> arrayDimensions = null, IReadOnlyList <TypeParamRef> typeParams = null) { Name = name; Type = type; ID = id; ArrayDimensions = arrayDimensions ?? Empty <int> .List; TypeParams = typeParams ?? Empty <TypeParamRef> .List; }
public MemberRef BuildMemberRef(string ns, string cs, string name, MemberRefType type) { TypeRef consoleRef = new TypeRefUser(module, ns, cs, module.CorLibTypes.AssemblyRef); if (type == MemberRefType.Static) { return(new MemberRefUser(module, name, MethodSig.CreateStatic(module.CorLibTypes.Void, module.CorLibTypes.String), consoleRef)); } else { return(new MemberRefUser(module, name, MethodSig.CreateInstance(module.CorLibTypes.Void, module.CorLibTypes.String), consoleRef)); } }