У меня есть требование передать параметры в виде XML в мои хранимые процедуры.
У меня есть служба WCF на среднем уровне, которая выполняет вызовы на мой уровень данных, который, в свою очередь, перенаправляет запрос в соответствующую хранимую процедуру.
План состоит в том, что служба WCF отвечает за сборку Xml для передачи в репозиторий.
Мне просто интересно, контролировать ли какие параметры содержатся в Xml на среднем уровне или использовать словарь, созданный клиентом, который я затем преобразовываю в Xml на среднем уровне?
На данный момент я выбрал последнее - например:
public TestQueryResponseMessage TestQuery(TestQueryRequestMessage message)
{
var result = Repository.ExecuteQuery("TestQuery", ParamsToXml(message.Body.Params));
return new TestQueryResponseMessage
{
Body = new TestQueryResponse
{
TopicItems = result;
}
}
}
private string ParamsToXml(Dictionary<string, string> nvc)
{
//TODO: Refactor
StringBuilder sb = new StringBuilder();
sb.Append("<params>");
foreach (KeyValuePair<string, string> param in nvc)
{
sb.Append("<param>");
sb.Append("<" + param.Key + ">");
sb.Append(param.Value);
sb.Append("</" + param.Key + ">");
sb.Append("</param>");
}
sb.Append("</params>");
return sb.ToString();
}
Однако мне может понадобиться сделать это первым способом. Э.Г.
public TestQueryResponseMessage TestQuery(TestQueryRequestMessage message)
{
string xml = string.Format("<params><TestParameter>{0}</TestParameter></params>",message.Body.TestParameter)
var result = Repository.ExecuteQuery("TestQuery", xml);
return new TestQueryResponseMessage
{
Body = new TestQueryResponse
{
TopicItems = result;
}
}
}
Что рекомендует улей?