Вот способ сделать это с LINQ к XML, вместе с примером кода:
Quickly Import и Export Данные Excel с LINQ к XML
Это - немного комплекса, так как необходимо импортировать пространства имен и т.д, но это действительно позволяет Вам избежать любых внешних зависимостей.
(Кроме того, конечно, это-.NET VB, не C#, но можно всегда изолировать материал.NET VB в его собственном проекте использовать литералы XML и сделать все остальное в C#.)
Не для того, чтобы гудеть в свой рог, но: http://liboxide.svn.sourceforge.net/viewvc/liboxide/trunk/Oxide.Net/Rpc/
class XmlRpcTest : XmlRpcClient
{
private static Uri remoteHost = new Uri("http://localhost:8888/");
[RpcCall]
public string GetTest()
{
return (string)DoRequest(remoteHost,
CreateRequest("getTest", null));
}
}
static class Program
{
static void Main(string[] args)
{
XmlRpcTest test = new XmlRpcTest();
Console.WriteLine(test.GetTest());
}
}
Это должен помочь ... Обратите внимание, что вышеупомянутая библиотека - это LGPL, которая может вам подойти или не подойти.
Для вызова метода getTest из C # вам понадобится клиентская библиотека XML-RPC. XML-RPC является примером такой библиотеки.
Спасибо за ответ, пробую библиотеку xml-rpc по ссылке darin. Я могу вызвать функцию getTest с помощью следующего кода
using CookComputing.XmlRpc;
...
namespace Hello
{
/* proxy interface */
[XmlRpcUrl("http://localhost:8888")]
public interface IStateName : IXmlRpcProxy
{
[XmlRpcMethod("getTest")]
string getTest();
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
/* implement section */
IStateName proxy = (IStateName)XmlRpcProxyGen.Create(typeof(IStateName));
string message = proxy.getTest();
MessageBox.Show(message);
}
}
}