Tôi đã kéo tóc ra để cố gắng giải quyết vấn đề này. Những gì tôi đang cố gắng làm là xây dựng một 'bản đồ' về cách các đối tượng đang được sử dụng trong một chút mã mà tôi đang làm việc. Hãy suy nghĩ về nó như là một nâng cao Tìm Usages. Cách dễ nhất để hiển thị này là bằng ví dụ:.NET Reflection: Tìm các loại đã sử dụng
public class MasterClass
{
Type1 type1;
Type2 type2;
Type3 type3;
void InitializeData()
{
type1 = new Type1(this);
type2 = new Type2(this);
type3 = new Type3(this);
}
}
public class Type1
{
private MasterClass _master;
public Type1(MasterClass master)
{
_master = master;
}
public void Something()
{
//use _master.type2 and _master.type3 here
}
}
public class Type2
{
private MasterClass _master;
public Type2(MasterClass master)
{
_master = master;
}
public void Something()
{
//use _master.type3 here
}
}
public class Type3
{
private MasterClass _master;
public Type3(MasterClass master)
{
_master = master;
}
public void Something()
{
//use _master.type1 and _master.type2 here
}
}
Những gì tôi đang cố gắng làm là có được một bản đồ hoặc báo cáo rằng, trong trường hợp của ví dụ, sẽ cung cấp cho một cái gì đó như:
Type1 sử dụng bởi: { Type3}
Type2 sử dụng bởi: {type1, Type3}
Type3 sử dụng bởi: {type1, Type2}
Nếu tôi có thể làm cho nó vào một cuốn từ điển thì tôi về nhà. :-)
Những gì tôi đã cố gắng:
Tôi đã thử đi qua các hội đồng, từng loại, mỗi phương pháp sau đó kéo các mảng IL và sau đó cố gắng để phân tích các toán hạng không có may mắn. Tôi thậm chí đã cố gắng đi qua các tập tin nguồn với một số biểu thức thông thường nhưng tôi có hàng ngàn lớp học để đi qua, viết bằng nhiều phong cách khác nhau có nghĩa là tôi sẽ bỏ lỡ một số tài liệu tham khảo.
Tôi có thể sử dụng Reflector & &/|| Resharper để có được một tham chiếu tại một thời điểm nhưng tôi muốn nhận được tất cả cùng một lúc.
Mọi đề xuất?
một Reflector có add-in mà không được công việc, đảm bảo đầy đủ? – driis
Bạn có muốn đạt được điều này một cách có lập trình hoặc chỉ sử dụng một công cụ không? – Ucodia
C# là ngôn ngữ lập trình. Nó không có Reflection. Đó là .NET. –