Ok, vì vậy tôi chỉ gặp phải vấn đề sau đã nhướn mày.Assembly.GetCallingAssembly() và các nhà thầu tĩnh?
Vì nhiều lý do tôi có thiết lập thử nghiệm trong đó các lớp Thử nghiệm trong TestingAssembly.dll phụ thuộc vào lớp TestBase trong tệp BaseTestingAssembly.dll. Một trong những điều các TestBase làm trong khi chờ đợi là tìm kiếm một nguồn lực nhất định trong nhúng riêng của mình và lắp ráp gọi
Vì vậy BaseTestingAssembly của tôi chứa đựng những dòng sau ...
public class TestBase {
private static Assembly _assembly;
private static Assembly _calling_assembly;
static TestBase() {
_assembly = Assembly.GetExecutingAssembly();
_calling_assembly = Assembly.GetCallingAssembly();
}
}
tĩnh kể từ khi tôi tìm , các hội đồng này sẽ giống nhau trong suốt vòng đời của ứng dụng, vậy tại sao phải tính toán lại chúng trên mọi thử nghiệm đơn lẻ.
Khi chạy điều này tuy nhiên tôi nhận thấy rằng cả hai _assembly và _calling_assembly đã được đặt thành BaseTestingAssembly thay vì BaseTestingAssembly và TestingAssembly tương ứng.
Đặt biến thành không tĩnh và khởi tạo chúng trong một hàm tạo thông thường đã sửa lỗi này nhưng tôi nhầm lẫn tại sao điều này lại xảy ra để bắt đầu việc này. Tôi nghĩ rằng các nhà xây dựng tĩnh chạy lần đầu tiên một thành viên tĩnh được tham chiếu. Điều này chỉ có thể là từ TestingAssembly của tôi mà sau đó nên có được người gọi. Có ai biết chuyện gì đã xảy ra không?
vậy tại sao hội đồng gọi điện không phải là rỗng? –
Điều đó có hữu ích hơn không? :) –
Không, có vẻ như điều đó sẽ có ý nghĩa mặc dù –