Ejemplo n.º 1
0
 public void SearchService_Click(object sender, RoutedEventArgs args)
 {
     ServiceBuilder.DiscoverServices <IFactoryService>()
     .OnFind(res =>
     {
         Debug.WriteLine(res.NetBiosName);
         res.Manager.Stop();
     })
     .Start();
     //var dis = new DiscoveryClient(new UdpDiscoveryEndpoint());
     //dis.FindProgressChanged += (s, e) =>
     //{
     //    //if (!e.EndpointDiscoveryMetadata.Extensions.Any(ex => ex.Name == "NetBiosName")) return;
     //    //string netbios = e.EndpointDiscoveryMetadata.Extensions.First(ex => ex.Name == "NetBiosName").Value;
     //    //int port = e.EndpointDiscoveryMetadata.Address.Uri.Port;
     //    //IEnumerable<string> ipList = e.EndpointDiscoveryMetadata.Extensions.Where(ex => ex.Name == "IpAddress").Select(ex => ex.Value);
     //    //if (FoundServices.Any(fs => fs.NetBiosName == netbios))
     //    //{
     //    //    FoundService ser = FoundServices.First(fs => fs.NetBiosName == netbios);
     //    //    foreach (string ip in ipList.Intersect(ser.IpAddressList))
     //    //        ser.IpAddressList.Add(ip);
     //    //}
     //    //else
     //    //    FoundServices.Add(new FoundService
     //    //    {
     //    //        IpAddressList = new List<string>(ipList),
     //    //        NetBiosName = netbios,
     //    //        Port = port
     //    //    });
     //    Debug.WriteLine("");
     //};
     //dis.FindCompleted += (s, e) =>
     //{
     //    dis.FindAsync(new FindCriteria(typeof(IFactoryService)));
     //};
     //dis.FindAsync(new FindCriteria(typeof(IFactoryService)));
 }