0

私は動作するコードを持っています:

XML:

<parameters>
    <company>asur_nsi</company>
    <password>lapshovva</password>
    <user>dogm_LapshovVA</user>
</parameters>

コード:

XElement documentRoot = XElement.Load(webConfigFilePath);
var param = from p in documentRoot.Descendants("parameters")
            select new
            {
                company = p.Element("company").Value,
                password = p.Element("password").Value,
                user = p.Element("user").Value
            };

foreach (var p in param)
{
    AuthContext ac = new AuthContext()
    {
        Company = p.company,
        Password = p.password,
        User = p.user
    };
}

しかし、私はそれをより良く、より短くし、AuthContext 型のオブジェクトをすぐに返したいと考えています。何らかの方法で AuthContext オブジェクトの作成を「select new」セクションに移動したいと考えています。

4

3 に答える 3

1
XElement documentRoot = XElement.Load(webConfigFilePath);
var param = from p in documentRoot.Descendants("parameters")
            select new AuthContext()
            {
                Company = p.Element("company").Value,
                Password = p.Element("password").Value,
                User = p.Element("user").Value
            };
于 2012-10-16T08:22:09.997 に答える
0
XElement documentRoot = XElement.Load(webConfigFilePath);
var authContexts = (from p in documentRoot.Descendants("parameters")
            select new AuthContext
            {
                Company = p.Element("company").Value,
                Password = p.Element("password").Value,
                User = p.Element("user").Value
            }).ToArray();

AuthContext匿名型の代わりに作成するだけです。

于 2012-10-16T08:22:50.090 に答える
0

すみません。私はちょうど私がやりたいことをする方法を考え出しました:

var config = XElement.Load(webConfigFilePath).Descendants("parameters").Single();
AuthContext ac = new AuthContext
{
    Company = config.Element("company").Value,
    Password = config.Element("password").Value,
    User = config.Element("user").Value
};

とにかくありがとうございました。

于 2012-10-16T08:40:01.947 に答える