public void OnOneThread() { var container = new EnvironmentObjectContainer(); var obj1 = Guid.NewGuid(); container.Set("test", obj1); var obj2 = container.Get("test"); Assert.That(obj2, Is.Not.Null); Assert.That(obj1, Is.EqualTo(obj2)); }
public static string IpAddress(this object source) { var hostname = Dns.GetHostName(); if (!string.IsNullOrEmpty(hostname)) { var ips = Dns.GetHostAddresses(hostname); var ipFirst = ips.FirstOrDefault(i => i.AddressFamily == AddressFamily.InterNetwork); if (ipFirst != null) { return(ipFirst.ToString()); } } if (ObjectContainer.Get(IpAddressKey) != null) { return(ObjectContainer.Get(IpAddressKey) as string); } if (HttpContext.Current != null) { return(HttpContext.Current.Request.UserHostAddress); } var context = OperationContext.Current; if (context != null) { var prop = context.IncomingMessageProperties; if (prop != null) { var endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; if (endpoint != null) { return(endpoint.Address); } } } return(""); }