private void RegisterTypes(ITypeResolver resolver, InterfaceEntry entry) { if (resolver == null) { throw new ArgumentNullException(nameof(resolver)); } if (entry == null) { throw new ArgumentNullException(nameof(entry)); } resolver.RegisterAssembly(typeof(EntanglementHostService).GetTypeInfo().Assembly); foreach (var ml in entry.InterfaceDescriptor.Methods) { foreach (var m in ml.Value) { resolver.RegisterType(m.RealReturnType); foreach (var p in m.Parameters) { resolver.RegisterType(p.Type); } } } foreach (var pl in entry.InterfaceDescriptor.Properties) { resolver.RegisterType(pl.Value.Property.PropertyType); } foreach (var ev in entry.InterfaceDescriptor.Events) { foreach (var parameter in ev.Value.Parameters) { resolver.RegisterType(parameter.Type); } } }