public interface IHttpContent
StringContent StringContent { get; set; }
public class BasicHttpContent : IHttpContent
public StringContent StringContent { get; set; }
public BasicHttpContent(string content)
StringContent = new StringContent(content, Encoding.UTF8);
public BasicHttpContent() { }
public class JsonHttpContent<T> : BasicHttpContent, IScrubbableContent<T>
public T Object { get; set; }
public Type Type { get; set; }
public JsonHttpContent(T value)
public interface IScrubbableContent<T> : IScrubbableContent
public interface IScrubbableContent
public static void Main(string[] args)
FancyRequest request = new FancyRequest { Id = "David" };
JsonHttpContent<FancyRequest> jsonContent = new JsonHttpContent<FancyRequest>(request);
BasicHttpContent stringContent = jsonContent as BasicHttpContent;
Console.WriteLine(stringContent.GetType());
Console.WriteLine(stringContent is IScrubbableContent);
Type contentType = stringContent.GetType();
var oddContent = stringContent as contentType;
public class FancyRequest