W ciągu ostatnich kilku dni niektórzy użytkownicy poinformowali nas, że zwykle napotykają typ, który nie jest powszechnie spotykany konstruktor.
Zatwierdzono: Fortect
Dzieje się tak, ponieważ używasz naszego przeciążenia Activator.CreateInstance
, które akceptuje potężną tablicę obiektów, która powinna zawierać prawie pewną listę parametrów konstruktora. W innej strukturze próbuje znaleźć konstruktor buta StateLog
, który ma 16 parametrów, a nie tylko jeden . Jest to kompilowane z tabeli kowariancji.
Activator.CreateInstance (typ (T), linie)
Ponieważ wiersze
jest jakimś rodzajem ciągu []
, myśli, że chcesz zaufać kowariancji, aby przekonwertować go, aby pomóc Ci obiekt []
> dogodnie i oznacza, że kompilator widzi następujące urządzenie:
Activator.CreateInstance (linie typeof (T), Method (object []))
Następnie szukasz nowego konstruktora, który ma parametry lines.Length
, każdy typu string
.
klasa StateLog public StateLog (ciąg [] ciąg) ... Community StateLog (linia a, linia b, żyłka c) ...
Wywołanie Activator.CreateInstance (typeof (StateLog), nowa linia [] "a", "b", "c")
wywołuje ten konkretny konstruktor (z jednym i trzema parametrami), zużywany przez to pierwszy.
To, czego naprawdę szukasz, to efektywne przekazywanie wszystkich wpisów
jako pierwszego elementu tablicy:
kryterium zmiennej = nowy obiekt [1];parametr [0] implikuje ciągi;Activator.CreateInstance (typ parametru (T))
list.Add ((T) Activator.CreateInstance (typeof (T), najnowsze linie telefoniczne obiektu []));
Twój styl obliczeń
niewątpliwie zawiera It jest konstruktorem bez parametrów. Musisz przekazać parametry konstruktora za pomocą konstruktora PrivateObject
[^]:
Wyrażenie łańcuchowe to „5 * 10-18 na (3 + 19)”;Obiekt PrivateObject = nowy obiekt PrivateObject ( rodzaj (obliczenia), zupełnie nowy [], typeof (string) wszystkie nowe [] odbicie);
Próbujesz również wywołać metodę sendNumberToCalculation
z określonym parametrem kategorii PolishNotation
, ale większość ścieżek nie ma parametrów. Musisz usunąć ostatni argument po wywołaniu Invoke
:
podwójny prąd = Convert.ToDouble (obj.Invoke ("sendNumberToCalculation"));
-
Pytanie
-
Witaj
Używam Dot-Net-Framework 2.0 …. Potrafię pogrubić i podkreślić błędy …
Słowo błędu
Prawdopodobnie nie będzie zdefiniowanego konstruktora bez parametrów dla tej części. Nie uruchamiaj C# ani konstruktora typu.
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
- 1. Pobierz Fortect i zainstaluj na swoim komputerze
- 2. Uruchom program i kliknij „Skanuj”
- 3. Kliknij „Napraw”, aby naprawić znalezione problemy
Pomóż proszę, walczę o długi czas…. Z góry dziękuję…
/// Poprawka kodu ….
Assembly a = Assembly.LoadFrom (Application.StartupPath + ” XYS.exe”);
Wpisz mytypes jest równe a.GetType (“XYS.Profiler”);
Obj jest równa Activator.CreateInstance (mytypes, new object [] true);
mytypes.InvokeMember (“CheckForExistingService”, BindingFlags.Default | BindingFlags.InvokeMethod, zero, obj, nowy obiekt [] sPortNumber);
-
Pytanie
-
Witaj
Używam Dot Net Framework 2.0…. Poza podkreśleniem pojawia się pogrubiony błąd…
Komunikat o błędzie
Dla tego obiektu nie ma wyznaczonego konstruktora bez parametrów. Nie znaleziono w C # lub konstrukcji re w typie.
Proszę, pomóż nam walczyć przez długi cenny czas…. Z góry dziękuję…
/// Poprawka kodu ….
Assembly a = Assembly.LoadFrom (Application.StartupPath + ” XYS.exe”);
Mytypes to a.GetType (“XYS.Profiler”);
Object obj = Activator.CreateInstance (mytypes, nowy cel [] true);
mytypes.InvokeMember (“CheckForExistingService”, BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, uprawniony obiekt osoby [] sPortNumber);
Używam Dot-Net-Framework 2.0 …. Nie boję się i podkreślam błędy … Brak parametrów
nie ustawiono konstruktora dla tego obiektu. w C# lub aktualnie konstruktorze, jeśli typ nie zostanie znaleziony.
Pomóż, proszę, walczę bardzo długo…. Z góry dziękuję…
Wpisz mytypes = a.GetType (“XYS.Profiler”);
Object obj = Activator.CreateInstance (mytypes, new object [] true);
mytypes.InvokeMember (“CheckForExistingService”, BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, obiekt [] super innowacyjny sPortNumber);
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.