public void IsMatchTest() { Assert.True(MediaType.IsMatch("a/a", "a/a")); Assert.True(MediaType.IsMatch("a/a", "a/a")); Assert.True(MediaType.IsMatch("a/a", "A/a")); Assert.True(MediaType.IsMatch("a/a", "A/A")); Assert.True(MediaType.IsMatch("a/*", "A/A")); Assert.True(MediaType.IsMatch("*/*", "A/A")); Assert.False(MediaType.IsMatch("a/b", "a/a")); Assert.False(MediaType.IsMatch("a/B", "A/a")); Assert.False(MediaType.IsMatch("a/b", "A/A")); Assert.False(MediaType.IsMatch("a/*", "b/A")); Assert.False(MediaType.IsMatch("a/*", null)); Assert.False(MediaType.IsMatch("a/*", "")); Assert.False(MediaType.IsMatch("a", "a/a")); }
/// <summary> /// 指示响应的ContentType与AcceptContentType是否匹配 /// 返回false则调用下一个ApiReturnAttribute来处理响应结果 /// </summary> /// <param name="responseContentType">响应的ContentType</param> /// <returns></returns> protected override bool IsMatchAcceptContentType(MediaTypeHeaderValue?responseContentType) { return(base.IsMatchAcceptContentType(responseContentType) || MediaType.IsMatch(textJson, responseContentType?.MediaType)); }
/// <summary> /// 指示响应的ContentType与AcceptContentType是否匹配 /// 返回false则调用下一个ApiReturnAttribute来处理响应结果 /// </summary> /// <param name="responseContentType">响应的ContentType</param> /// <returns></returns> protected virtual bool IsMatchAcceptContentType(MediaTypeHeaderValue?responseContentType) { return(MediaType.IsMatch(this.AcceptContentType.MediaType, responseContentType?.MediaType)); }