Одним из способов было бы добавить другое поле только для чтения к вашему классу MyObject, которое оборачивает логику, которую вы хотите, и привязывает столбец к этому полю.
public string DisplayValue
{
get {
if (Perm)
{
return HiddenBankAcc;
}
else
{
return FullBankAcc;
}
}
}
Это должно работать:
//this gets the ip address of the server pc
public string GetIPAddress()
{
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); // `Dns.Resolve()` method is deprecated.
IPAddress ipAddress = ipHostInfo.AddressList[0];
return ipAddress.ToString();
}
http://wec-library.blogspot.com/2008/03/gets-ip-address-of-server-pc-using-c.html
ИЛИ
//while this gets the ip address of the visitor making the call
HttpContext.Current.Request.UserHostAddress;
http://www.geekpedia.com/KB32_How-do-I-get-the-visitors-IP-address.html
Ниже защелки взят от Mkyong, чтобы показать вкладке сетей внутреннюю консоль разработчиков в Google Chrome. В "Заголовки Запроса" вкладка Вы видели список всех серверных переменных как показано ниже:
Ниже немного строк кода, который получает ipaddress клиента, который поражает Ваше приложение
//gets the ipaddress of the machine hitting your production server
string ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipAddress == "" || ipAddress == null)
{
//gets the ipaddress of your local server(localhost) during development phase
ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
//Output:
For production server - 122.169.106.247 (random)
For localhost - ::1
Вышеупомянутое выполняется медленно, поскольку требует вызова DNS (и, очевидно, не будет работать, если он недоступен). Вы можете использовать приведенный ниже код, чтобы получить карту локальных IPV4-адресов текущего компьютера с соответствующей маской подсети:
public static Dictionary<IPAddress, IPAddress> GetAllNetworkInterfaceIpv4Addresses()
{
var map = new Dictionary<IPAddress, IPAddress>();
foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
{
foreach (var uipi in ni.GetIPProperties().UnicastAddresses)
{
if (uipi.Address.AddressFamily != AddressFamily.InterNetwork) continue;
if (uipi.IPv4Mask == null) continue; //ignore 127.0.0.1
map[uipi.Address] = uipi.IPv4Mask;
}
}
return map;
}
предупреждение: это еще не реализовано в Mono