Note that there are some explanatory texts on larger screens.

plurals
  1. PODifficulty Building XML-RPC.NET Client (To use with Moodle)
    text
    copied!<p>I am using the CookComputing XML-RPC Library in an attempt to build a C# console client in order to execute API methods on Moodle (an open-source Learning management system). The server is using ZEND XML-RPC.</p> <p><strong>When I run the code, I get a TypeLoadException was Unhandled</strong>, referring to this line: </p> <pre><code>System.Object myResults = proxy.moodle_user_get_user_by_id(myUserIds); </code></pre> <p><em>"Inheritance security rules violated while overriding member: 'CookComputing.XmlRpc.XmlRpcFaultException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden."</em></p> <p><strong>My Client code is:</strong></p> <pre><code>... using CookComputing.XmlRpc; [XmlRpcUrl("http://moodle.ourcompany.com/webservice/xmlrpc/server.php?wstoken=somereallylongtokenstring")] public interface IMoodleUserGetUsersById : IXmlRpcProxy { [XmlRpcMethod("moodle_user_get_users_by_id")] System.Object moodle_user_get_user_by_id(int[] userIds); } namespace Moodle_test_api1 { class Program { static void Main(string[] args) { Console.WriteLine("Testing XML-RPC Services for Moodle!"); IMoodleUserGetUsersById proxy = XmlRpcProxyGen.Create&lt;IMoodleUserGetUsersById&gt;(); int[] myUserIds = {11, 12}; System.Object myResults = proxy.moodle_user_get_user_by_id(myUserIds); //Console.WriteLine("Trying Function: {0}:{1}", proxy.ToString()); } } </code></pre> <h2> }</h2> <p><strong>The API documentation for the method I want to utilize is:</strong></p> <pre><code>moodle_user_get_users_by_id: Get users by id. Arguments --------- userids (Required) General structure list of ( int //user ID ) XML-RPC (PHP structure) [userids] =&gt; Array ( [0] =&gt; int ) Response: General structure ----------------- list of ( object { id double //ID of the user username string //Username policy is defined in Moodle security config firstname string //The first name(s) of the user lastname string //The family name of the user email string //An email address - allow email as root@localhost auth string //Auth plugins include manual, ldap, imap, etc confirmed double //Active user: 1 if confirmed, 0 otherwise idnumber string //An arbitrary ID code number perhaps from the institution lang string //Language code such as "en", must exist on server theme string //Theme name such as "standard", must exist on server timezone string //Timezone code such as Australia/Perth, or 99 for default mailformat int //Mail format code is 0 for plain text, 1 for HTML etc description string //User profile description descriptionformat int //User profile description format city string //Home city of the user country string //Home country code of the user, such as AU or CZ customfields Optional //User custom fields (also known as user profil fields) list of ( object { type string //The name of the custom field value string //The value of the custom field } )} ) </code></pre> <p>Any suggestions would be helpful, including if I am passing in the token in the right spot?</p> <p>TIA.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload