Допустим, в одном из модулей проекта у меня есть ProtoBufSpecification, которая содержит
typemodel[typeof(IReturn<IProtobufBody>)].AddSubType(1274, typeof(ServerElectionDto));
, это правильно, и я хочу написать интеграционные тесты, которые проверяют, чтобы все экземпляры, которые реализуют IReturn<IProtobufBody>
, имели предварительный контракт ирасширить подтип, как показано ранее.Я могу выполнить первую часть:
public interface IMetaType
{
ValueMember this[MemberInfo member] { get; }
ValueMember AddField(int fieldNumber, string memberName);
IMetaType AddSubType(int fieldNumber, Type derivedType, DataFormat dataFormat);
IMetaType AddSubType(int fieldNumber, Type derivedType);
void SetSurrogate(Type surrogateType);
}
public interface IRuntimeTypeModel
{
IMetaType this[Type type] { get; }
IMetaType Add(Type type, bool applyDefaultBehaviour);
}
и создать мягкую точку для ввода моего макета в спецификации IProtocolSpecification
public void Initialize(RuntimeTypeModel typemodel)
{
Initializer(typemodel);
}
public void Initializer(dynamic typemodel)
Есть ли более простой способ сделать это?