Loại Blob
thể hiện một thuộc tính Content
trả về byte[]
.
Thử nghiệm sau đây được trích xuất từ tệp BlobFixture.cs và chứng minh việc sử dụng thuộc tính này.
[Test]
public void CanReadBlobContent()
{
using (var repo = new Repository(BareTestRepoPath))
{
var blob = repo.Lookup<Blob>("a8233120f6ad708f843d861ce2b7228ec4e3dec6");
byte[] bytes = blob.Content;
bytes.Length.ShouldEqual(10);
string content = Encoding.UTF8.GetString(bytes);
content.ShouldEqual("hey there\n");
}
}
Trong thử nghiệm đặc biệt này, các Blob GitObject được lấy trực tiếp thông qua các phương pháp LookUp()
. Bạn cũng có thể truy cập Blobs từ thuộc tính Files
của số Tree
.
Về yêu cầu cụ thể hơn của bạn, kiểm tra đơn vị sau đây sẽ hiển thị cho bạn cách truy cập byte thô của Blob từ đầu số Branch
.
[Test]
public void CanRetrieveABlobContentFromTheTipOfABranch()
{
using (var repo = new Repository(BareTestRepoPath))
{
Branch branch = repo.Branches["br2"];
Commit tip = branch.Tip;
Blob blob = (Blob)tip["README"].Target;
byte[] content = blob.Content;
content.Length.ShouldEqual(10);
}
}
Lưu ý: thử nghiệm này cho thấy một cách khác để truy cập vào một Blob
(như một bản tóm tắt TreeEntry
). Vì vậy, việc sử dụng các diễn viên.
Tuyệt vời. Cảm ơn anh bạn! – Nick
Vui vì tôi đã có thể giúp bạn :) – nulltoken
Ngoài ra .. xem các bài kiểm tra là một ý tưởng hay. – Nick