小编Dav*_*ghi的帖子

StreamReader.Read和StreamReader.ReadBlock之间的区别

文档简单地说ReadBlock是

"阻止版本的阅读"

但是,这是什么意思?

之前有人问过这个问题,但是,是吧?

http://www.pcreview.co.uk/forums/thread-1385785.php

那个回答的人说

基本上,这意味着您可以依赖StreamReader.ReadBlock返回,直到它读取的次数与您要求的一样多,或者它已到达流的末尾.

我是否正确理解这是必需的,因为Read可能无法为您提供所需的一切?那只是因为它返回0并不意味着你到达文件的末尾?

那么这意味着检查返回的字节数以外的其他内容(EndOfStream?)或使用ReadBlock代替?

c# io streamreader

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

Xml存储库实现

我正在寻找一个简单的Xml存储库(GetAll,Add,Update,Delete)示例.

每个人都说"使用存储库模式是一个好主意,因为你可以交换你的数据存储位置......"现在我需要将我的数据存储在xml文件中,并且不知道如何实现XML存储库.我搜索了整个谷歌,无法找到它.

如果可能,请发送包含关系数据句柄的示例.就像在EF上保存产品实体一样,所有依赖于产品的实体也都是持久的.

xml design-patterns repository linq-to-xml

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

基于接口生成的表达式

收到异常 无法将类型“MySomeTypeThatImplementsISomeInterfaceAndIsPassedAs[T]ToTheClass”转换为类型“ISomeInterface”。LINQ to Entities 仅支持强制转换实体数据模型基元类型。

我的存储库看起来像

public interface IRepository<T>
{
    IQueryable<T> Get(System.Linq.Expressions.Expression<System.Func<T, bool>> Query);
}
Run Code Online (Sandbox Code Playgroud)

另外,我有服务类

public abstract class FinanceServiceBase<TAccount, TParcel, TPayment>
    where TAccount : IAccount
    where TParcel : IParcel
    where TPayment : IPayment
 {
     //...
     IRepository<TPayment> ParcelRepository {get; private set;}         

     public bool MakePayment(TPayment payment)
     {
         //...
         ParcelRepository.Get(p => p.ParcelId == 2);
         // here my exception is thrown
         // **p.ParcelId is in IParcel**
         //...
     }
 }
 //...
Run Code Online (Sandbox Code Playgroud)

有了这门课,我可以控制很多关于财务的事情,而无需为其他程序重写代码。我用 3 个泛型参数做了这个类,因为我不能使用 IRepository 因为我的存储库不能<out T>

ParcelId 是 Int32
TParcel …

c# lambda code-reuse entity-framework

4
推荐指数
1
解决办法
2681
查看次数