MoKa
> Суть такова
Вот как-то так можно сделать, по моему хорошее решение... тоже суть))
using System; .... using System.Data.Linq; //нужно подключить + добавить ссылку System.Data.Linq namespace WpfApplication1 { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent( ); this.SendButton.Click += new RoutedEventHandler( SendButton_Click); this.ReadButton.Click += new RoutedEventHandler( ReadButton_Click); } void SendButton_Click( object sender, RoutedEventArgs e) { //подготовка к отправке send( new object[] {new UserPacket_1( )} ); } byte[] _bytePacket; public void send( object[] packet) { _bytePacket = ( ( Binary)DBConvert.ChangeType( packet, typeof( Binary))).ToArray( ); } void ReadButton_Click( object sender, RoutedEventArgs e) { // приём и определение класса пакета var packet = ( ( object[])DBConvert.ChangeType( _bytePacket, typeof( object[])))[0]; var curentType = packet.GetType( ); } } [Serializable]//Пространство имен: System Сборка: mscorlib (в mscorlib.dll) public class UserPacket_1 { //какой-то класс //с какими-то членами // } [Serializable] public class UserPacket_2 { //какой-то класс //с какими-то членами // }
... когда определился что за класс пришёл
можно строить какую-то другую логику...,
Читабельность ужасна, хотя суть в пользовании выглядит очень даже приятно.
Единственное, недостаточно деталей (как данные в классах пакетов объявляются, как они пакуются в бинарные данные, автоматически или ручками? и др. моменты).
MoKa
> Читабельность ужасна, хотя суть в пользовании выглядит очень даже приятно.
> Единственное, недостаточно деталей (как данные в классах пакетов объявляются,
> как они пакуются в бинарные данные, автоматически или ручками? и др. моменты).
выложу код(позже)... пока суть да дело придумал ещё вариант
Тема в архиве.