Assembly assembly = Assembly.LoadFrom("Logic\\bin\\Debug\\Logic.dll");
Type queryManagerType = assembly.GetType("Logic." + HttpContext.Current.Session["lang_name"] + "SearchQueryManager");
var queryManager = (ISearchQueryManager)Activator.CreateInstance(queryManagerType);
public interface ISearchQueryManager
{
IList<Advertisements> ApplyQueries(string searchQuery, int page, int pageSize, string orderBy, out int count);
}
public class SlovenianSearchQueryManager : ISearchQueryManager
{
...
}
nhưng tôi nhận đượccast vấn đề từ lớp giao diện
Không thể cast đối tượng của loại 'Logic.SlovenianSearchQueryManager' gõ 'Logic.ISearchQueryManager'.
EDIT: toàn bộ stacktrace
System.InvalidCastException là unhandled bởi mã người dùng
nhắn = "Không thể để cast đối tượng kiểu 'Logic.SlovenianSearchQueryManager' để gõ 'Logic.ISearchQueryManager'"
Source = "ViaMura.Web.Module"
StackTrace: tại ViaMura.Web.Module.WebController.GetAdvertismentsByRawQuery (String rawQuery, trang Int32, Int32 PageSize, Chuỗi orderBy, Int32 & count) trong D: \ PROJEKTI \ bánh xích \ WebCrawlerSuite \ ViaMura.Web.Module \ WebController.cs: dòng tại ViaMura.Web.Module.Views.SearchResultsPresenter.OnResultsLoad (Int32 trang, Int32 PageSize, string orderBy) trong D: \ PROJEKTI \ crawler \ WebCrawlerSuite \ ViaMura.Web.Module \ Views \ SearchResultsPresenter.cs: dòng tại ViaMura.Web.Searc hResults.SearchAdvertisments() trong D: \ PROJEKTI \ bánh xích \ WebCrawlerSuite \ ViaMura.Web \ SearchResults.aspx.cs: dòng tại ViaMura.Web.SearchResults.Page_Load (Object sender, EventArgs e) trong D : \ PROJEKTI \ crawler \ WebCrawlerSuite \ ViaMura.Web \ SearchResults.aspx.cs: dòng tại System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e) tại Hệ thống. Web.Util.CalliEventHandlerDelegateProxy.Callback (Đối tượng người gửi, EventArgs e) tại System.Web.UI.Control.OnLoad (EventArgs e) tại ViaMura.Web.App_Code.PageControllers.BasePage.O nLoad (EventArgs e) trong D: \ PROJEKTI \ crawler \ WebCrawlerSuite \ ViaMura.Web \ App_Code \ PageControllers \ BasePage.cs: dòng 89 tại System.Web.UI.Control.LoadRecursive() tại System.Web. UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
EDIT2:
string a1 = typeof (ISearchQueryManager).Assembly.Location;
string a2 = typeof(SlovenianSearchQueryManager).Assembly.Location
cho tôi kết quả tương tự:
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ 5438a399 \ 53975f83 \ lắp ráp \ DL3 \ 0f9540b5 \ 15407fe2_5db7cb01 \ Logic.DLL
nhưng
string a3 = queryManagerType.Assembly.Location;
mang lại cho tôi con đường khác nhau:
D: \ PROJEKTI \ bánh xích \ WebCrawlerSuite \ WebCrawler.Logic \ bin \ Debug \ WebCrawler.Logic.dll
Vui lòng đăng theo dõi ngăn xếp ngoại lệ đầy đủ. Tôi nghi ngờ rằng bạn có giao diện 'ISearchQueryManager' này được định nghĩa trong hai hội đồng khác nhau. –
@Darin hoặc hai không gian tên –