Connected.Framework/Connected.Interop/InteropExtensions.cs
2022-12-02 15:03:34 +01:00

28 lines
707 B
C#

using Connected.Notifications;
namespace Connected.Interop;
public static class InteropExtensions
{
public static TArgs AsArguments<TArgs>(this IDto args) where TArgs : IDto
{
var instance = typeof(TArgs).CreateInstance<TArgs>();
return Serializer.Merge(instance, args);
}
public static TArgs AsArguments<TArgs>(this IDto args, params object[] sources) where TArgs : IDto
{
var instance = typeof(TArgs).CreateInstance<TArgs>();
return Serializer.Merge(instance, sources.ToArray(), args);
}
public static TArgs AsEventArguments<TArgs>(this IDto args) where TArgs : IEventArgs
{
var instance = typeof(TArgs).CreateInstance<TArgs>();
return Serializer.Merge(instance, args);
}
}