ChannelCore.cs 945 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // System.Runtime.Remoting.Channels.ChannelCore.cs
  3. //
  4. // Author: Lluis Sanchez Gual ([email protected])
  5. //
  6. // 2003 (C) Copyright, Novell, Inc.
  7. //
  8. using System;
  9. using System.Reflection;
  10. using System.Runtime.Serialization;
  11. namespace System.Runtime.Remoting.Channels
  12. {
  13. internal class ChannelCore
  14. {
  15. public static SerializationBinder SimpleBinder = new SimpleBinder();
  16. }
  17. internal class SimpleBinder: SerializationBinder
  18. {
  19. public override Type BindToType (String assemblyName, string typeName)
  20. {
  21. Assembly asm;
  22. int i = assemblyName.IndexOf (",");
  23. if (i != -1)
  24. {
  25. // Try using the full name
  26. try
  27. {
  28. asm = Assembly.Load (assemblyName);
  29. Type t = asm.GetType (typeName);
  30. if (t != null) return t;
  31. }
  32. catch {}
  33. assemblyName = assemblyName.Substring (0,i);
  34. }
  35. // Try using the simple name
  36. asm = Assembly.Load (assemblyName);
  37. return asm.GetType (typeName, true);
  38. }
  39. }
  40. }