Как CLR обрабатывает вызовы extern-метода в C#

Вы можете использовать таким образом

    let customerTckt:[String:Any] = ["RequestID" : requestID ,
    "TaskID" : taskID ,
    "Description" : comments ,
    "TicketTypeID" : 3 ,
    "CustomerID" : customerID ,
    "PriorityID" : 3 ,
    "CustomerTPPID" : TTPIDArray ]

    let param : [String : Any] = ["ServiceReqID" : 1 ,
                                  "WebUsersID" : customerID,
                                  "FirstName" : userName,
                                  "LastName" : "" ,
                               "Company":self.profileValues.customerCompanyName ,
                                  "City" : self.profileValues.customerCityName ,
                                  "Email" : self.profileValues.customerEmail ,
                                  "ContactNo" : self.profileValues.customerContactNumber ,
                                  "Country" : "Pakistan" ,
                                  "PackageChange" : 0 ,
                                  "AddressChange" : 0,
                                  "TelInternetVAS" : 0 ,
                                  "Others" : 0 ,
                                  "Comments" : comments ,
                                  "CSAFNO" : self.profileValues.customerCSAFNo,
                                  "SecondaryContactNo" : "" ,
                                  "CustomerTicket" :customerTckt]


func postserviceRequestFeedback(url : String , parameter : [String : Any] , tiket : tiket ){
Alamofire.request(url, method : .post , parameters : parameter , headers : 
HTTPHeaders).responseJSON { (response) in
    if response.result.isSuccess{}}
5
задан JaredPar 15 March 2009 в 18:49
поделиться

2 ответа

Вызовы extern-метода к неуправляемому коду. По сути, не имеет смысла быть названным на (управляемом) экземпляре объекта - первым (скрытым) аргументом в методе экземпляра является ссылка экземпляра, иначе this. Как правило, extern методы просто включают простые типы (примитивы, строка, и т.д.) - не объекты (кроме, возможно, массивов - и даже они часто разрешаются к IntPtr сначала).

4
ответ дан 14 December 2019 в 13:47
поделиться

extern вызовы также должны обычно приспосабливать "C-стилю" API, и C ничего не знает об объектах, таким образом вызовы static.

Мой оператор не на 100% верен, поскольку существует соглашение о вызовах ThisCall, которое может использоваться с [DllImport] в качестве помощи в вызове методов C++.

2
ответ дан 14 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: