I have:
public interface ITest { string test { get; set; } }
And
[DataContract] public class TestGeneric : ITest {
You have created a field, as you omitted the { get; set; } accessors that make a member a property.
{ get; set; }
The implementation must match the interface exactly, so add those accessors:
public class TestGeneric : ITest { public string Test { get; set; } }