小编JJo*_*oos的帖子

XElement Add函数将xmlns =""添加到XElement

我有一个为列表对象生成xml的函数:

public XDocument ToXML()
{
    foreach (var row in this)
    {
        var xml = row.ToXml();
        template.Root.Add(xml);
    }
    return template;
}
Run Code Online (Sandbox Code Playgroud)

template.ToString()读取:<RootElement xmlns="urn:testTools">

XML内容如下:<Example><SubElement>testData</SubElement></Example>

add函数执行完template.ToString()后读取:<RootElement xmlns="urn:testTools"><Example xmlns=""><SubElement>testData</SubElement></Example>

所以由于某种原因,添加了一个空命名空间,我怎么能阻止它这样做呢?

.net c# xml xml-serialization linq-to-xml

8
推荐指数
2
解决办法
1万
查看次数

泛型类型与其默认值的比较(没有泛型类约束)会产生编译时错误

我刚遇到这种情况,我认为这是一个使用default关键字的好机会.但它没有编译,我想不出为什么.以下示例说明了我的问题:

public class Test<TDataSource>
{
    public IQueryable<TDataSource> DataSource { get; set; }

    public bool GetOneOrDefaultResult()
    {
        var result = DataSource.SingleOrDefault();
        return result != default(TDataSource);
    }
}
Run Code Online (Sandbox Code Playgroud)

你会在第8行得到一个错误("运算符'=='不能应用于'TDataSource'和'TDataSource'类型的操作数.").我认为使用default关键字将消除引用类型和值类型之间的任何比较问题.

添加将TDataSource限制为引用类型的通用约束使得这段代码可以编译.

有人可以解释为什么编译器不会为我解决这个问题吗?只是不够聪明才能看到这会起作用吗?

这是相关的: 不能将operator ==应用于C#中的泛型类型?

[编辑] SLaks的答案给了我一些灵感,'=='运算符不起作用,但Equals函数应该.

    public class Test<TDataSource>
{
    public IQueryable<TDataSource> DataSource { get; set; }

    public bool GetOneOrDefaultResult()
    {
        var result = DataSource.SingleOrDefault();
        return result.Equals(default(TDataSource));
    }
}
Run Code Online (Sandbox Code Playgroud)

这个编译会正常吗?

.net c# generics .net-3.5

8
推荐指数
1
解决办法
1751
查看次数

如何将ninject本身注入具有扩展函数的静态类中

我得到了一些带有扩展方法的静态类,它们使用存储库模式为实体添加"业务逻辑".

现在有时我需要IRepository在这些扩展函数中创建一个新的.

我目前正在通过我正在扩展的对象访问我的Ninject内核来解决它,但它真的很难看:

public static IEnumerable<ISomething> GetSomethings(this IEntity entity)
{
    using (var dataContext = entity.kernel.Get<IDataContext>())
        return dataContext.Repository<ISomething>().ToList();
}
Run Code Online (Sandbox Code Playgroud)

我还可以创建一个静态构造函数,以某种方式从工厂访问Ninject内核,Ninject 2中是否已有基础结构?

有人知道更好的解决方案吗?有没有人对这种方式有一些意见来实现业务逻辑.

c# extension-methods ninject repository-pattern ninject-2

5
推荐指数
1
解决办法
4487
查看次数