text:
Home » Library » Modern » Richard Carrier »
Luke and Josephus (2000)
There has long been the observation that Luke-Acts contains numerous parallels with the works of Josephus, generating three different theories to account for this: that Josephus used Luke, that Luke used Josephus, or that they both used some common but now lost source. Steve Mason has reviewed the arguments [1] and in summarizing the evidence concludes that, besides generic parallels of genre and form and the use of identical historical events, which are inconclusive as proofs, the "coincidence ... of aim, themes, and vocabulary ... seems to suggest that Luke-Acts is building its case on the foundation of Josephus' defense of Judaism," and therefore that Luke is consciously and significantly drawing on Josephus to supplement his use of Mark and Q and to create the appearance of a real history, a notable deviation from all the other Gospels which have none of the features of a historical work.
This thesis, if correct, entails two things. First, it undermines the historicity of certain details in the Christ story unique to Luke, such as his account of the Nativity, since these have been drawn from Josephus, who does not mention them in connection with Jesus, and thus it is more than possible that they never were linked with Jesus until Luke decided they were. This does not prove, but provides support for the view that Luke is creating history, not recording it. Second, it settles the terminus post quem of the date Luke-Acts was written: for in order to draw material from the Jewish War, Luke could not have written before 79 A.D., and could well have written much later since the rate of publication in antiquity was exceedingly limited and slow, requiring hand copies made by personal slaves (though at first oral recitations would be more common than written copies); and in order to draw material from the Jewish Antiquities, as he appears to have done, Luke could not have written before 94 A.D., and again could have written much later for the same reason.
Since this thesis is of great interest to students of Christianity, secular or otherwise, what follows is a simple summary of Mason's argument. I shall abbreviate Luke-Acts as L, and the collective histories of Josephus as J, or individually as JW (Jewish War) and JA (Jewish Antiquities). Josephus also wrote an autobiography and a tract against Apion (a scholar hostile to Jews), but these shall not be included in the abbreviation J. When referenced, they shall be identified as Life and Against Apion respectively. Note that Mason only singles out the most impressive examples of a connection. Other authors have scrupulously collected a great many more, though their results will not be surveyed here.
Generic Parallels
(which do not prove anything in themselves but add to or support the firmer evidence)
Both L and J are self-described and organized as histories.
Both L and J are written in Hellenistic Greek (a literary Koinê).
Both L and J write "from an apologetic stance, using their histories to support a thesis" (e.g. by blaming "the bad Jews" for every calamity, and conveying the notion that the "good Jews," and in L's case that means the Christians, deserve respect)
Both L and J were "heavily influenced by Jewish scripture and tradition."
Both L and J open with a conventional historian's preface
Both L and J appear in two parts: J begins with the "most important" event in history (the Jewish War) and follows by looking into previous Jewish history to explain the war's significance (with the JA); L begins with his own 'most important' event (the appearance of God on Earth and his act of salvation for all mankind), and follows by looking into subsequent Christian history to explain Christ's significance (with Acts) [2].
Both L and JA are dedicated to a patron, one who is depicted as particularly interested in the real truth about their history (Christianity on the one hand, Judaism on the other), and regarded as the motivation for writing in the first place: Theophilus in the former case (a name that is not uncommon, but could also be a literary invention--it means "Friend of God" [3]); Epaphroditus in the latter case. [4].
Both Acts and J engage the same historical conventions of speech-creation [5].
Both L and J emphasize the antiquity and respectability of their religion and tie it to the revered and renowned religious center of Jerusalem [6].
Story Parallels
(some of which afford firm evidence of borrowing, some not)
"More than any other Gospel writer, Luke includes references to the non-Christian world of affairs. Almost every incident of this kind that he mentions turns up somewhere in Josephus' narratives." - Mason, p. 205
Among these stories or facts (and Mason only mentions some of many) are:
The census under Quirinius (Luke 3:1; JW 2.117-8, JA 18.1-8).
The census under Quirinius is notable for three reasons. First, Josephus uses the census as a key linchpin in his story, the beginning of the wicked faction of Jews that would bring down Judaea (and the temple), whereas Luke transvalues this message by making this census the linchpin for God's salvation for the world, namely the birth of Christ (which also would result in destruction of the temple) [7].
Second, no other author did or was even likely to have seen this census as particularly noteworthy--Josephus alone uses it as an excuse for him to introduce his villains, a group that scholars doubt existed as a unified faction--and therefore it is perhaps more than coincidence that it should appear as a key event elsewhere, even more so since only Josephus, precisely because of his apologetic aim, associates the census with Judas the Galilean, and thus it is peculiar that Luke should do so as well.
Third, Matthew does not mention anything about it in his account of the nativity, thus one is left to wonder where Luke learned of it. Given the first two points, the answer could be that Luke borrowed the idea from Josephus, and therefore it probably does not come from any genuine tradition about Jesus. Finally, it is most unlikely that Josephus got the information from Luke, for Josephus provides much more detailed, and more correct information (e.g. he knows exactly when and why the census happened, that the census was only of Judaea, not the whole world, etc.), such that it is far more likely that Luke was drawing upon and simplifying Josephus than that Josephus was expanding on Luke [8].
The same three rebel leaders: Judas the Galilean--even specifically connected with the census (Acts 5:37; JW 2.117-8, JA 18.1-8); Theudas (Acts 5:36; JA 20.97); and "The Egyptian" (Acts 21:38; JW 2.261-3, JA 20.171).
It seems quite a remarkable coincidence that Luke should even mention these men at all (no other Christian author does), and that he names only three rebel leaders, and that all three are the very same men named by Josephus--even though Josephus says there were numerous such men (JW 2.259-264; JA 20.160-9, 20.188) and he only singled out these three especially for particular reasons of his own. In fact, to use only the rather generic nick-name "The Egyptian," instead of, or without, an actual name of any kind (there were millions of Egyptians, and certainly thousands in Judaea at any given time), though explicable as an affectation of one author, seems a little strange when two authors repeat the same idiom.
It also makes sense for Luke to draw these three men from Josephus: since Josephus was writing for a Roman audience, if the Romans knew any Jewish rebels, it would be these three men. Just as Josephus named them as examples of what good Jews are not, Luke names them specifically as examples of what the Christians are not--and as the latter two were specifically painted by Josephus as religious figures, messianic prophets, similar to Jesus, it would have behooved Luke to disassociate Jesus with these men, recently popularized to Romans by Josephus as villains. Similarly with Judas, who was a military rebel, very much the opposite of Jesus, the peaceful religious reformer. Notice, for example, how Luke greatly downplays Jesus' use of violence in clearing the temple, and emphasizes in its place his role as teacher: compare Luke 19:45-8 with Mark 11:15-8, Matthew 21:12-6, and John 2:13-6.
Finally, Luke makes errors in his use of these men that has a curious basis in the text of Josephus. When luke brings up Theudas and Judas in the same speech, he reverses the correct order, having Theudas appear first, even though that does not fit what Josephus reports--indeed, Josephus places Theudas as much as fifteen years after the dramatic time in which Luke even has him mentioned. That Luke should be forced to use a rebel leader before his time is best explained by the fact that he needed someone to mention, and Josephus, his likely source, only details three distinct movements (though he goes into the rebel relatives of Judas, they are all associated with Judas). And when Josephus mentions Theudas, he immediately follows with a description of the fate of the sons of Judas (JA 20.97-102) and uses the occasion to recap the actions of Judas himself (associating him with the census, as Acts does). Thus, that Luke should repeat this very same incorrect sequence, which makes sense in Josephus but not in Acts, is a signature of borrowing. Further evidence is afforded here by similar vocabulary: both use the words aphistêmi "incited" and laos "the people."
Luke's use of the Egyptian is also telling: Luke has him leading the sicarii, assassins, into the desert. But this does not make sense, since the sicarii operated by assassination under the concealment of urban crowds, not in the wilds. Moreover, Josephus does not link the Egyptian with them, though he does mention both in exactly the same place (cf. JW 2.258-61, JA 20.167-9), and in fact also mentions there other figures who led people into the desert, even though the Egyptian led them to the Mount of Olives. As Mason puts it (p. 212):
This is clearly part of [Josephus'] literary artistry. How did Luke, then, come to associate the Egyptian, incorrectly, with the sicarii? If he did so independently of Josephus, the coincidence is remarkable. It is even more remarkable because sicarii is a Latin term for assassins. Josephus seems to have been the first to borrow this word and make it a technical term for the Jewish rebels in his Greek narrative.
That Luke should use the same word, and similarly conflate the Egyptian with the other impostors mentioned by Josephus in the very same passage as leading people into the desert , further signifies borrowing--that exactly these mistakes should be made is incredible if not the result of drawing (albeit carelessly) on Josephus.
The death of Agrippa I as God's vengeance for accepting praise as a god (Acts 12:21-3; JA 19.343-52)
Although Luke puts this event in a different location and changes other details of the story, there is a strange similarity that suggests borrowing: Josephus connects the divine praise with the putting on of a brilliant robe, whereas Luke mentions putting on a robe before the praise, but without making the connection explicit--one wonders why the donning of the robe is mentioned by Luke at all, if he was not thinking of this story in Josephus.
The association of Agrippa II with Berenice (Acts 25:13, 25:23, 26:30; JA 20.145)
Whereas Josephus hints at an incestuous affair between them, and Agrippa II's other profligate tendencies, there is no explanation given by Luke for mentioning Berenice at all, and from his account one would think that Agrippa II is an honorable, disciplined observer of Jewish customs. But if a reader knows the details of Josephus, the entire scene of Paul before Agrippa II becomes comic sarcasm. It seems plausible that Luke intended it this way, and therefore may have gotten the idea from Josephus (see Mason pp. 96-100).
The association of Felix with Drusilla (Acts 24:24-6; JA 20.143)
Josephus reports that Drusilla the Jew was seduced and abandoned her husband, the king of Emessa, to marry Felix. Acts puts the two together in a way that makes more sense if this account in Josephus is understood, especially considering Josephus' portrayal of Felix as notoriously cruel to the Jews. For when Felix and Drusilla visit Paul in jail, Paul discusses "justice, self-control, and coming judgement," at which Felix is terrified for some unexplained reason. As Mason puts it, "Why these themes in particular, and not the resurrection of Jesus or faith in Christ, which dominate the book elsewhere?" (p. 114). And why did Paul's subject scare him? This could be answered by the fact that Josephus' accounts of Felix and Drusilla were spreading, and were in the mind of Luke when he wrote of this encounter.
Felix sending priests, "excellent men," to Rome for trial on petty charges (Life 13)
Could this have been Luke's pretext or model for having the same thing happen to Paul?
Mention of Lysanias, tetrarch of Abilene (Luke 3:1; JW 2.215, 2.247, JA 19.275)
The parable of the hated king sounds a lot like Josephus on Herod (Luke 19:12-27; JW 1.282-5)
Similarities in the description of the siege of Jerusalem (including mention of slaughtered children: Luke 19:43-4; JW 6)
Mention of a famine in the reign of Claudius (Acts 11:28-9; JA 3.320, 20:51-3, 20.101)
Pilate's attack on Galileans in L sounds like Pilate's attack on Samaritans at Gerizim (Luke 13:1; JA 18.85-7)
Religion as Philosophy
Mason concludes with one overriding similarity of tactic between L and J that is unlikely to have been independently devised: both very cleverly paint their religions as respectable Graeco-Jewish philosophical schools. Some of these features:
L begins by asserting that Christian teachings were "handed down" (paradidômi) by eye-witnesses of Jesus, just as J emphasizes that Jewish teachings were "handed down" (paradidômi) by Moses, and by the fathers of Pharisees. In both cases, the authors are drawing on Greek ideas of handing down succession in philosophical schools. Thus, both L and J are portraying their religion as traditional and philosophical (though the concept also has precedents in Paul).
L and J use the word "secure" (asphaleia) in describing their concept of truth, a philosophical concept for factual and ethical truth.
L's emphasis, far greater than in any other NT text, on the virtues of poverty and the sins of hypocrisy and wealth, are all standard philosophical themes (in Stoic and Epicurean thought especially, but also in Platonic and Cynic ideals). Josephus also engages in similar discussions of the three schools of Judaism. Compare Luke 2:7, 2:16, 2:24, 3:10-14, 4:18, 6:20-6, 12:13-21, 14:1-14, 16:14, 16:19-31, 18:1-14 (and Acts 2:44-5, 4:32-5) with comparable passages in other Gospels, if any, and it becomes clear that Luke has this philosophical message more in mind than anyone [9].
L is the only Christian author to use the concept of free and frank speech, identified and praised in philosophy as parrhêsia (Acts 2:29, 4:29, 4:31, 28:31).
L follows J in calling the Jewish sects (including Christianity) philosophical schools, haireseis, a term that would later take on a negative meaning among Christians as "heresy" (Acts 5:17, 15:5, 26:5; on Christianity as a hairesis: 24:5, 24:14-5, 28:22). We know of no other author but Josephus to have done this--it is a creative feature of his own apologetic program and therefore likely his own idea.
L calls the Pharisees the "most precise school" (Acts 26:5), yet no one else but Josephus uses this idiom (JW 1.110, 2.162; JA 17.41; Life 189).
Finally, L curiously never mentions the third school, the Essenes. Yet Josephus praised them above all. They also happened to be much like Christians in many respects. Mason advances the hypothesis that Luke intended the Christians to take the place of the Essenes--and certainly wanted to avoid competing with them--so that Christianity would appear to Roman readers as this very third school: the most like Greek philosophy, the most like Christianity, and the most praised by Josephus. We lack the data necessary to prove or refute this hypothesis, but it is worth considering in light of all the evidence so far. It certainly fits.
Luke almost certainly knew and drew upon the works of Josephus (or else an amazing series of coincidences remains in want of an explanation), and therefore Luke and Acts were written at the end of the 1st century, or perhaps the beginning of the 2nd. This also results in the realization that almost every famous person, institution, place or event mentioned in L that can be checked against other sources is also found in Josephus, so that efforts to prove the veracity of L by appealing to these checks is cut short by the fact that he appears to have gotten all this information from Josephus, and simply cut-and-pasted it into his own "history" in order to give his story an air of authenticity and realism. He could thus, for all we know, have been writing historical fiction--using real characters and places, and putting them in fictional situations, all dressed up as history--history with a message, and an apologetic purpose. We thus cannot really know what in L is true or false with regard to the origins of Christianity or the actions of early Christians, since these particular details are the most prone to manipulation for didactic, symbolic, politico-ecclesiastical and apologetic reasons, and have very little if any external corroboration (and no external corroboration from a non-Christian).
[1] Steve Mason, "Josephus and Luke-Acts," Josephus and the New Testament (Hendrickson Publishers: Peabody, Massachusetts, 1992), pp. 185-229; cf. Max Krenkel, Josephus und Lukas (1894) and Heinz Schreckenberg, "Flavius Josephus und die lukanischen Schriften," Wort in der Zeit: Neutestamentliche Studien (1980) pp. 179-209. Also related: Gregory Sterling, Historiography and Self-Definition: Josephos, Luke-Acts and Apologetic Historiography (1992).
[2] A direct inversion of detail can be evidence of borrowing, in a manner called "emulation" or "transvaluation," where the borrower deliberately inverts the order or message of the story or idea that he has borrowed. This is especially the case when the inversion or change so befits the author's message that his reason for inversion is overwhelming. In this case, Christianity by definition aimed at becoming a forward-looking break with the past, the end of the Old Covenant and beginning of the New. Thus, Luke's inversion of the Josephan order makes perfect sense and is therefore plausibly inspired by Josephus--it becomes a counter-Josephus, overtly defying his message and replacing it with a new one.
[3] There was a convention of naming one's patron, something entirely appropriate for an author of a monumental work whose efforts or publication would require a lot of money and interest to produce, but not at all necessary for a work so brief as L, and thus not as explicable. Though this may be another clue to the man's invention, it is still possible for Luke to have been inspired to his task by a real Theophilus and written specifically for his benefit.
[4] Epaphroditus is probably a real man (the name was common among freedmen, and Josephus knew many such men in the imperial household), though we cannot confirm who he could be. The name means "Touched by Aphrodite" and thus "Lovely" or "Handsome," and Theophilus could be a transvaluation of this name: Love of God is superior to physical beauty granted by a "demon" (pagan goddess) of lust. Note also that in Life 430 and Against Apion 1.1 Josephus also dedicates his work to the same Epaphroditus, even using exactly the same epithet as used by Luke of Theophilus, "most excellent" (kratiste), though this is possibly the formal address given to a member of the equestrian class. Compare also Luke's introduction of the Gospel with Josephus' conclusion of Against Apion (2.296). Since both these works were written on or shortly after 100 A.D., if Luke is reflecting them at all, this puts the date of L entirely after the 1st century, perhaps in the first decade of the 2nd century. However, this is entirely too weak an evidence.
[5] It was impossible in almost all cases to know what someone said on a distant occasion, and therefore it was accepted practice among readers and authors of the time to invent speeches, and it is certain that the speeches preserved in Acts, for example, are entirely of Luke's creation. No one would have expected otherwise. Clearly there were no written editions of the speeches (as they surely would have been preserved with Paul's letters), and oral memory is notoriously bad at recalling anything but the gist and occasion of such things, and even then is easily corrupted by intervening events that alter or distort memory. In the time of L and J, it was well understood and accepted that speeches would be used as vehicles for the author to convey his own ideas, but also that it was proper to create speeches according to what the author thinks would have been appropriate to the speaker and the occasion (thus giving them at least some justification for inclusion in a supposedly objective history).
[6] L could not do this as easily or thoroughly as J, since Christianity was actually new, and the wordspace to cover such apologetic exceptionally limited by comparison. Even so, besides the obvious use of a geneology for this aim, L makes double time by tying Christianity into Jerusalem as its rightful center and origin more than any other Evangelist (Luke 1:18, 2:41-51, 9:51, 13:33, 17:11, 19:11, 24:13, 24:18, 24:33, 24:47, 24:52; Acts 1:8, 1:12, 8:1, 8:14, 9:26, 11:22, 15:2, 16:4, 21:17-18), and by making a far greater effort to show how Christianity is the God-ordained evolution of Jewish belief (its forerunners are scrupulous Jews: Luke 1:6, 2:39-42; as were its founders: Luke 4:16; Acts 3:1, 15:20, 15:29, 17:2, 21:20-26; and Jews who do not convert are in error: Acts 2:23, 3:15, 13:45, 14:2, 28:27; other overt Jewish tie-ins unique to L, many emphasizing Jewish and thus Christian antiquity: Luke 14:1, 24:27, 24:44; Acts 2:16, 2:25, 4:11, 4:25, 5:34-39, 7:2-53, 8:35, 13:16, 21:20), two facts which borrow off of Jewish antiquity and respectability and make it Christian. Luke uses speeches and off-hand remarks to pack in a huge number of reminders that Christianity is a sect of Judaism (and thus should be treated as such). Incidentally, Luke also goes more out of his way than any other author to make the Romans out to be the good guys, shifting blame ever more on the stubborn Jews who fail to see that they are in error, that Christianity is the true Judaism (Luke 23:4, 23:14-15, 23:22; Acts 2:23, 3:15, 4:10, 5:30, 13:6-12, 17:12-17, 22:22-29, 23:10, 23:16-35; other enemy Jews: Acts 13:45, 13:50, 14:19, 17:5, 18:6, 19:9, 21:27). This is L as apologetic history, just like J.
[7] It is certainly a mere coincidence that the villain in Josephus' story, the author of the rebellion (and whose relative, Eleazar, concludes the war by calling for the suicides at Masada), is a man named Judas from Galilee, whereas the villain in the Gospel story is also a Judas from Galilee. This coincidence is not likely to be of Luke's creation--if anyone invented it at all, it was Mark (cf. my review of MacDonald linked in the side box above). But this coincidence might have inspired Luke to transvalue stories and themes from Josephus in the first place.
[8] Mason is wrong, I believe, on two arguments related to this issue. First, he argues that Luke could not be describing a real census, because it could not have been of the whole world, nor required such moving around, and it was not plausible that ancestral homes were the required counting points since everyone was of many households and would not arbitrarily choose one ancestor that was a thousand years ancient. I am more charitable to Luke. First, Luke says "the whole inhabited" with the noun suppressed, and thus may have meant Judaea rather than the usual "land" or "world" (he might also have misunderstood Josephus).
Second, I have heard that Egyptian census studies suggest that shepherds and other itinerants were in fact called to their ancestral or traditional homesteads for counting, which makes sense since there would be no other way to reckon their property, which consisted of mobile livestock (grazing land was often communal or public property). It is also a well known fact that even Roman citizens had to enroll in one of several tribes and were counted by tribe--though records made it easier to do such counting regardless of location, such convenient records did not exist for Judaeans, at least none so easily employed by Romans for such a purpose, and getting provincials to organize in registered places according to tribal association would be practical.
Third, despite intermarriage, a very ancient namesake could be preserved as signifying tribal membership (we employ last names to do the very same thing today). Indeed, these links could even be invented. This was the case for newly-made Roman citizens, who had to enroll in a tribe purely as a legal fiction, and no doubt similar practices were in place or could have been set up when Judaea was annexed.
All the details Luke "adds" to Josephus could well come from common beliefs or experiences with Roman censuses in Luke's own day, though it is also possible that he invented them--or crafted them by mistake, since it appears possible that Luke did not clearly read Josephus, but skimmed or overheard his works (he might even have heard Josephus himself recite the work in public, as was a common practice for authors), or read an epitome (a popular convention of the day) rather than the actual work, or, perhaps most likely for being most common, did not have the book on hand when he wrote and worked from an imperfect memory.
[9] And Luke puts Paul in dialogue with philosophers (Acts 17:16-34; he even quotes Epimenides and Aratus!), and is also peculiar for having most closely paralleled the death of Jesus with the death of Socrates, cf. John Kloppenborg, "Exitus clari viri: The Death of Jesus in Luke," Scriptures and Cultural Conversations (1992). It is also likely that the image of Jesus as Cynic philosopher, or influenced by Cynicism, stems from Luke's portrayal more than any other.


Novel Coworking is hosting a Grand Opening Party on October 18th from 4-7pm, and you're invited! 1495 Canyon Boulevard is the site of Boulder's coolest new entrepreneurial community and your destination for local brews on tap, craft bites, music and amazing prizes. Come one, come all, and feel free to bring a guest!


For Internet speeds at affordable prices near Avondale, Colorado, the choice is CenturyLink High-Speed Internet. That's because CenturyLink makes it easy for you to customize your service with a speed that will suit your budget and your lifestyle demands. You'll have no trouble connecting all the phones, computers, and tablets in your Avondale home. When you sign up for CenturyLink High-Speed Internet in Avondale, you can access your online account any time you want, and you'll receive 11 free email accounts. You can even watch your favorite TV shows on the CenturyLink home page. To truly take advantage of Internet service from CenturyLink, look into the 3 Year Price-Lock Guarantee. Sign up for CenturyLink High-Speed Internet in Avondale. Call today at 1-719-362-5402.


text:
namespace Rpc.Internals
{
    using System;
    using System.Collections;
    using System.Reflection;
    using Rpc.Internals;

    ///  XML-RPC System object implementation of extended specifications.
    [XmlRpcExposed]
    class XmlRpcSystemObject
    {
        private XmlRpcServer _server;
        static private IDictionary _methodHelp = new Hashtable();

        /// Static <c>IDictionary</c> to hold mappings of method name to associated documentation String
        static public IDictionary MethodHelp
        {
            get
            {
                return _methodHelp;
            }
        }

        /// Constructor.
        /// <param name="server"><c>XmlRpcServer</c> server to be the system object for.</param>
        public XmlRpcSystemObject(XmlRpcServer server)
        {
            _server = server;
            server.Add("system", this);
            _methodHelp.Add(this.GetType().FullName + ".methodHelp", "Return a string description.");
        }

        /// Invoke a method on a given object.
        /// <remarks>Using reflection, and respecting the <c>XmlRpcExposed</c> attribute,
        /// invoke the <paramref>methodName</paramref> method on the <paramref>target</paramref>
        /// instance with the <paramref>parameters</paramref> provided. All this packages other <c>Invoke</c> methods
        /// end up calling this.</remarks>
        /// <returns><c>Object</c> the value the invoked method returns.</returns>
        /// <exception cref="XmlRpcException">If method does not exist, is not exposed, parameters invalid, or invocation
        /// results in an exception. Note, the <c>XmlRpcException.Code</c> will indicate cause.</exception>
        static public Object Invoke(Object target, String methodName, IList parameters)
        {
            if (target == null)
                throw new XmlRpcException(XmlRpcErrorCodes.SERVER_ERROR_METHOD,
                    XmlRpcErrorCodes.SERVER_ERROR_METHOD_MSG + ": Invalid target object.");

            Type type = target.GetType();
            MethodInfo method = type.GetMethod(methodName);

            try
            {
                if (!XmlRpcExposedAttribute.ExposedMethod(target, methodName))
                    throw new XmlRpcException(XmlRpcErrorCodes.SERVER_ERROR_METHOD,
                        XmlRpcErrorCodes.SERVER_ERROR_METHOD_MSG + ": Method " + methodName + " is not exposed.");
            }
            catch (MissingMethodException me)
            {
                throw new XmlRpcException(XmlRpcErrorCodes.SERVER_ERROR_METHOD,
                    XmlRpcErrorCodes.SERVER_ERROR_METHOD_MSG + ": " + me.Message);
            }

            Object[] args = new Object[parameters.Count];

            int index = 0;
            foreach (Object arg in parameters)
            {
                args[index] = arg;
                index++;
            }

            try
            {
                Object retValue = method.Invoke(target, args);
                if (retValue == null)
                    throw new XmlRpcException(XmlRpcErrorCodes.APPLICATION_ERROR,
                        XmlRpcErrorCodes.APPLICATION_ERROR_MSG + ": Method returned NULL.");
                return retValue;
            }
            catch (XmlRpcException e)
            {
                throw e;
            }
            catch (ArgumentException ae)
            {
                Logger.WriteEntry(XmlRpcErrorCodes.SERVER_ERROR_PARAMS_MSG + ": " + ae.Message,
                    LogLevel.Information);
                String call = methodName + "( ";
                foreach (Object o in args)
                {
                    call += o.GetType().Name;
                    call += " ";
                }
                call += ")";
                throw new XmlRpcException(XmlRpcErrorCodes.SERVER_ERROR_PARAMS,
                    XmlRpcErrorCodes.SERVER_ERROR_PARAMS_MSG + ": Arguement type mismatch invoking " + call);
            }
            catch (TargetParameterCountException tpce)
            {
                Logger.WriteEntry(XmlRpcErrorCodes.SERVER_ERROR_PARAMS_MSG + ": " + tpce.Message,
                    LogLevel.Information);
                throw new XmlRpcException(XmlRpcErrorCodes.SERVER_ERROR_PARAMS,
                    XmlRpcErrorCodes.SERVER_ERROR_PARAMS_MSG + ": Arguement count mismatch invoking " + methodName);
            }
            catch (TargetInvocationException tie)
            {
                throw new XmlRpcException(XmlRpcErrorCodes.APPLICATION_ERROR,
                    XmlRpcErrorCodes.APPLICATION_ERROR_MSG + " Invoked method " + methodName + ": " + tie.Message);
            }
        }

        /// List methods available on all handlers of this server.
        /// <returns><c>IList</c> An array of <c>Strings</c>, each <c>String</c> will have form "object.method".</returns>
        [XmlRpcExposed]
        public IList listMethods()
        {
            IList methods = new ArrayList();
            Boolean considerExposure;

            foreach (DictionaryEntry handlerEntry in _server)
            {
                considerExposure = XmlRpcExposedAttribute.IsExposed(handlerEntry.Value.GetType());

                foreach (MemberInfo mi in handlerEntry.Value.GetType().GetMembers())
                {
                    if (mi.MemberType != MemberTypes.Method)
                        continue;

                    if (!((MethodInfo)mi).IsPublic)
                        continue;

                    if (considerExposure && !XmlRpcExposedAttribute.IsExposed(mi))
                        continue;

                    methods.Add(handlerEntry.Key + "." + mi.Name);
                }
            }

            return methods;
        }

        /// Given a method name return the possible signatures for it.
        /// <param name="name"><c>String</c> The object.method name to look up.</param>
        /// <returns><c>IList</c> Of arrays of signatures.</returns>
        [XmlRpcExposed]
        public IList methodSignature(String name)
        {
            IList signatures = new ArrayList();
            int index = name.IndexOf('.');

            if (index < 0)
                return signatures;

            String oName = name.Substring(0, index);
            Object obj = _server[oName];

            if (obj == null)
                return signatures;

            MemberInfo[] mi = obj.GetType().GetMember(name.Substring(index + 1));

            if (mi == null || mi.Length != 1) // for now we want a single signature
                return signatures;

            MethodInfo method;

            try
            {
                method = (MethodInfo)mi[0];
            }
            catch (Exception e)
            {
                Logger.WriteEntry("Attempted methodSignature call on " + mi[0] + " caused: " + e,
                    LogLevel.Information);
                return signatures;
            }

            if (!method.IsPublic)
                return signatures;

            IList signature = new ArrayList();
            signature.Add(method.ReturnType.Name);

            foreach (ParameterInfo param in method.GetParameters())
            {
                signature.Add(param.ParameterType.Name);
            }

            signatures.Add(signature);

            return signatures;
        }

        /// Help for given method signature. Not implemented yet.
        /// <param name="name"><c>String</c> The object.method name to look up.</param>
        /// <returns><c>String</c> help text. Rich HTML text.</returns>
        [XmlRpcExposed]
        public String methodHelp(String name)
        {
            String help = null;

            try
            {
                help = (String)_methodHelp[_server.MethodName(name)];
            }
            catch (XmlRpcException e)
            {
                throw e;
            }
            catch (Exception)
            {
            /* ignored */ }
            ;

            if (help == null)
                help = "No help available for: " + name;

            return help;
        }

        /// Boxcarring support method.
        /// <param name="calls"><c>IList</c> of calls</param>
        /// <returns><c>ArrayList</c> of results/faults.</returns>
        [XmlRpcExposed]
        public IList multiCall(IList calls)
        {
            IList responses = new ArrayList();
            XmlRpcResponse fault = new XmlRpcResponse();

            foreach (IDictionary call in calls)
            {
                try
                {
                    XmlRpcRequest req = new XmlRpcRequest((String)call[XmlRpcXmlTokens.METHOD_NAME],
                        (ArrayList)call[XmlRpcXmlTokens.PARAMS]);
                    Object results = _server.Invoke(req);
                    IList response = new ArrayList();
                    response.Add(results);
                    responses.Add(response);
                }
                catch (XmlRpcException e)
                {
                    fault.SetFault(e.FaultCode, e.FaultString);
                    responses.Add(fault.Value);
                }
                catch (Exception e2)
                {
                    fault.SetFault(XmlRpcErrorCodes.APPLICATION_ERROR,
                        XmlRpcErrorCodes.APPLICATION_ERROR_MSG + ": " + e2.Message);
                    responses.Add(fault.Value);
                }
            }

            return responses;
        }
    }
}

redpajama_set_name: RedPajamaGithub