.Net 4.0 ile console uygulamasından interop SAP dll'lerini kullanıldığında "Bad variant type" şeklinde hata vermektedir.
Hata detayı:
Bad variant type
Source: wdtaocx
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at SAPFunctionsOCX.ISAPFunctions.set_Connection(Object )
Çözümü:
Bu hatanın çözümü interop dll'lerindeki sap metodları tek thread içinde çağrılması gerektiğindendir. Zorlama ile tek thread içinde çalışması sağlanmalıdır.
Örnek çağrım:
--
var staThread = new System.Threading.Thread(() => MyMethod());
staThread.SetApartmentState(System.Threading.ApartmentState.STA);
staThread.Start();
staThread.Join();
This above code help the method to work as single thread and the connection is establish without any error.
--
Alıntı:
https://www.codeproject.com/Questions/618768/SAP-Logon-control-BAD-VARIANT-TYPE-issue-in-Window
Hiç yorum yok:
Yorum Gönder