6 Ağustos 2019 Salı

c# Web Sayfasının URL bulunması (Get IIS Url)

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/"

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);
        }

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);
            }

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

<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;

If you are stuck with .Net 4.0 and the target site is using TLS 1.2, you need the following line instead. 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>
...