PeerResolverSettings.cs 1012 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // PeerResolverSettings.cs
  3. //
  4. // Author:
  5. // Marcos Cobena ([email protected])
  6. //
  7. // Copyright 2007 Marcos Cobena (http://www.youcannoteatbits.org/)
  8. //
  9. using System;
  10. using System.ServiceModel.Channels;
  11. namespace System.ServiceModel.PeerResolvers
  12. {
  13. public class PeerResolverSettings
  14. {
  15. PeerCustomResolverSettings custom = new PeerCustomResolverSettings ();
  16. // FIXME: Is it really by default Auto?
  17. PeerResolverMode mode = PeerResolverMode.Auto;
  18. public PeerResolverSettings ()
  19. {
  20. }
  21. public PeerCustomResolverSettings Custom {
  22. get { return custom; }
  23. }
  24. public PeerResolverMode Mode { get; set; }
  25. public PeerReferralPolicy ReferralPolicy { get; set; }
  26. internal BindingElement CreateBinding ()
  27. {
  28. switch (Mode) {
  29. case PeerResolverMode.Pnrp:
  30. return new PnrpPeerResolverBindingElement () { ReferralPolicy = this.ReferralPolicy };
  31. default:
  32. var be = Custom.CreateBinding ();
  33. be.ReferralPolicy = this.ReferralPolicy;
  34. return be;
  35. }
  36. }
  37. }
  38. }