C# конструктор веб-браузера
Я пытаюсь добавить веб-браузер в существующее приложение C#, но, не используя C# около 6 лет, я совершенно не знаком с тем, как оно работает.
Я пытаюсь добавить браузер в partial class
(опять что-то, с чем я не знаком), используя следующий код:
public partial class WebBrowser : WebBrowserBase{
public WebBrowser(){
...
}
...
}
Тем не менее, я получаю ошибку компиляции конструктора, который говорит:
WebBrowserBase не содержит конструктор, который принимает 0 аргументов
Я Google это сделал, и наткнулся на следующий вопрос о SO: Ошибка C#: Родитель не содержит конструктор, который принимает 0 аргументов. Я попытался сделать то, что было предложено в ответе на это, и изменил свой код на:
public partial class WebBrowser : WebBrowserBase{
public WebBrowser(int i) : base(i){
...
}
...
}
Тем не менее, я получаю ошибку компиляции, которая говорит:
WebBrowserBase не содержит конструктор, который принимает 1 аргумент
Так что я предполагаю, что эта проблема не связана с количеством аргументов в конструкторе... Кто-нибудь может объяснить, что я здесь делаю неправильно?
2 ответа
Если вы посмотрите на класс WebBrowserBase, он утверждает, что:
"Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из вашего кода".
И кажется, что у него нет публичного конструктора - поэтому вы не можете наследовать от него. Но если вы не хотите создавать свой собственный WebBrowser
контроль (изменить некоторые его функции), вы должны просто использовать по умолчанию System.Windows.Forms.WebBrowser
в XAML
Посмотреть:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Width="525"
Height="350">
<WebBrowser HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Window>
In Inheritance,
If Derived class contains its own constructor which not defined in Base class then this error Occurs
For Example:
class FirstClass
{
public FirstClass(string s) { Console.WriteLine(s); }
}
class SecondClass : FirstClass
{
public SecondClass()
{
Console.WriteLine("second class");
}
}
Output: Error:-'myconsole.FirstClass' does not contain a constructor that takes 0 arguments
To Run without Error:
class FirstClass
{
public FirstClass()
{
Console.WriteLine("second class");
}
public FirstClass(string s) { Console.WriteLine(s); }
}
class SecondClass : FirstClass
{
public SecondClass()
{
Console.WriteLine("second class");
}
}