private void OnServiceResolved(object o, ServiceResolvedEventArgs args)
        {
            IResolvableService s = (IResolvableService)args.Service;

            string name       = s.Name;
            string machine_id = null;
            bool   pwRequired = false;

            Console.WriteLine("Resolved Service: {0} - {1}:{2} ({3} TXT record entries)",
                              s.FullName, s.HostEntry.AddressList [0], s.Port, s.TxtRecord.Count);

            if (name.EndsWith("_PW"))
            {
                name       = name.Substring(0, name.Length - 3);
                pwRequired = true;
            }

            foreach (TxtRecordItem item in s.TxtRecord)
            {
                if (item.Key.ToLower() == "password")
                {
                    pwRequired = item.ValueString.ToLower() == "true";
                }
                else if (item.Key.ToLower() == "machine name")
                {
                    name = item.ValueString;
                }
                else if (item.Key.ToLower() == "machine id")
                {
                    machine_id = item.ValueString;
                }
            }

            DPAP.Service svc = new DPAP.Service(s.HostEntry.AddressList [0], (ushort)s.Port,
                                                name, pwRequired, machine_id);

            services [svc.Name] = svc;

            if (Found != null)
            {
                Found(this, new ServiceArgs(svc));
            }
        }
        private void OnServiceResolved(object o, ServiceResolvedEventArgs args)
        {
            IResolvableService s = (IResolvableService)args.Service;

                string name = s.Name;
                string machine_id = null;
                bool pwRequired = false;

                Console.WriteLine ("Resolved Service: {0} - {1}:{2} ({3} TXT record entries)",
                    s.FullName, s.HostEntry.AddressList [0], s.Port, s.TxtRecord.Count);

                if (name.EndsWith ("_PW")) {
                    name = name.Substring (0, name.Length - 3);
                    pwRequired = true;
                }

                foreach (TxtRecordItem item in s.TxtRecord) {
                    if (item.Key.ToLower () == "password") {
                        pwRequired = item.ValueString.ToLower () == "true";
                    } else if (item.Key.ToLower () == "machine name") {
                        name = item.ValueString;
                    } else if (item.Key.ToLower () == "machine id") {
                        machine_id = item.ValueString;
                    }
                }

                    DPAP.Service svc = new DPAP.Service (s.HostEntry.AddressList [0], (ushort)s.Port,
                                                name, pwRequired, machine_id);

            services [svc.Name] = svc;

            if (Found != null)
                Found (this, new ServiceArgs (svc));
        }