static TestHost ResolveParameter( ReflectionTestFixtureBuilder fixture, IMemberInfo member) { if (typeof(ITestInstance).GetTypeInfo().IsAssignableFrom(member.Type)) { var hostAttr = member.GetCustomAttribute <TestHostAttribute> (); if (hostAttr == null) { hostAttr = member.Type.GetCustomAttribute <TestHostAttribute> (); } if (hostAttr == null) { throw new InternalErrorException(); } return(CreateCustomHost(fixture.Type, member, hostAttr)); } var paramAttrs = member.GetCustomAttributes <TestParameterAttribute> ().ToArray(); if (paramAttrs.Length == 1) { return(CreateParameterAttributeHost(fixture.Type, member, paramAttrs[0])); } else if (paramAttrs.Length > 1) { throw new InternalErrorException(); } var typeAttr = GetCustomAttributeForType <TestParameterAttribute> (member.Type); if (typeAttr != null) { return(CreateParameterAttributeHost(fixture.Type, member, typeAttr)); } if (member.Type.AsType().Equals(typeof(bool))) { return(CreateBoolean(member)); } if (member.Type.IsEnum) { return(CreateEnum(member)); } throw new InternalErrorException(); }