Farklı sunucularda local dosya erişimde parametrik yapıdan ziyade IIS üzerindeki url ile dosya erişim yapmak için ;
var url = HttpContext.Request.Url.GetLeftPart(UriPartial.Authority);
response = "http://localhost:59386/"
6 Ağustos 2019 Salı
12 Nisan 2019 Cuma
C# DLL P/Invoke CallbackOnCollectedDelegate Error
Mevcut C++ ile yazılmış bir dll projenize eklemek için ara dll oluşturarak yapacağınız Callback uygulamalarında GC callback metodunu kaldırması sorunucu çalışma aralığında CallbackOnCollectedDelegate Exception alıp uygulama kapanmasına neden olmaktadır.
Sorun:
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void ApplicationMessageCallback(Int32 applicationId, IntPtr data, Int32 size);
[DllImport("xxx.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void inposext_set_application_message_callback(ApplicationMessageCallback cb);
public static void SetApplicationMessageCallback(ApplicationMessageCallback callbackFunction)
{
inposext_set_application_message_callback(callbackFunction);
}
Çözüm :
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void ApplicationMessageCallback(Int32 applicationId, IntPtr data, Int32 size);
[DllImport("xxx.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void inposext_set_application_message_callback(ApplicationMessageCallback cb);
private static ApplicationMessageCallback callback; // Keeps it referenced
public static void SetApplicationMessageCallback(ApplicationMessageCallback callbackFunction)
{
callback = callbackFunction;
inposext_set_application_message_callback(callback);
}
Etiketler:
C#,
CallbackOnCollectedDelegate,
INVOKE
17 Şubat 2019 Pazar
C# SeriPort Ad okuma
using (var searcher = new System.Management.ManagementObjectSearcher
("SELECT * FROM WIN32_SerialPort"))
{
string[] portnames = System.IO.Ports.SerialPort.GetPortNames();
var ports = searcher.Get().Cast<System.Management.ManagementBaseObject>().ToList();
var tList = (from n in portnames
join p in ports on n equals p["DeviceID"].ToString()
select n + " - " + p["Caption"] ).ToList();
tList.ForEach(Console.WriteLine);
}
("SELECT * FROM WIN32_SerialPort"))
{
string[] portnames = System.IO.Ports.SerialPort.GetPortNames();
var ports = searcher.Get().Cast<System.Management.ManagementBaseObject>().ToList();
var tList = (from n in portnames
join p in ports on n equals p["DeviceID"].ToString()
select n + " - " + p["Caption"] ).ToList();
tList.ForEach(Console.WriteLine);
}
16 Ocak 2019 Çarşamba
system diagnostics process start administrator
system diagnostics process start administrator:
Process proc = new Process();
proc.StartInfo.FileName = fileName;
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
proc.Start();
19 Kasım 2018 Pazartesi
Visual Studio- Hata : the underlying connection was closed an unexpected error occurred on a send and (407) Proxy Authentication Required.
Güvenli bir ağ üzerinden proxy yetkilendirmeli bir ağdan dış servise bağlanma sırasında alınan hata cözümü :
app.config eklen
Clinet Kullanmadan önce aşağıdaki kodu uygun bir yere yerleştirin . TLS 1.2 için
System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
If you are stuck with .Net 4.0 and the target site is using TLS 1.2, you need the following line instead.
app.config eklen
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
Clinet Kullanmadan önce aşağıdaki kodu uygun bir yere yerleştirin . TLS 1.2 için
System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
1 Ekim 2018 Pazartesi
javascript ile dropdown secimine göre alan gösterimi
@Html.DropDownList("optionId", new SelectList(SelectListData), "Select an option")
@Html.TextBox("controlId")
<script> $("#optionId").on("change", function () { if ($("#optionId option:selected").index() == 0) { $("#controlId").hide(); } else { $("#controlId").show(); } }); </script>
25 Temmuz 2018 Çarşamba
Devexpress WPF : loading decorator change content
<dx:LoadingDecorator Name="ld" SplashScreenDataContext="{Binding}">
<dx:LoadingDecorator.SplashScreenTemplate>
<DataTemplate>
<dx:WaitIndicator DeferedVisibility="True" Content="{Binding SomeProperty}"/>
</DataTemplate>
</dx:LoadingDecorator.SplashScreenTemplate>
...
Kaydol:
Kayıtlar (Atom)