Laden...
Avatar #avatar-3534.jpg
hummigbird1 myCSharp.de - Member
Software-Developer Dabei seit 10.06.2015 127 Beiträge
Benutzerbeschreibung

Forenbeiträge von hummigbird1 Ingesamt 127 Beiträge

16.12.2019 - 23:55 Uhr

Könnte auch am "Scope" deiner Abfrage liegen.
Bin mir nicht sicher was der Defaultscope des Management searcher objects ist.
Am besten mal in der Doku schauen.

Aber du mußt beim WBETest meines Wissens nach auch einen Scope angeben (so etwas in der Art wie: root\CIMV2)

Dementsprechend mußt du auch sicherstellen das dein Searcher auch diesen Scope benutzt.
Es gibt einen entsprechenden Konstruktor

04.12.2019 - 19:28 Uhr

Wie Taipi88 schon richtig gesagt hat kannst du im Zweifelsfall die Win32 API Methode hierfür selbst benutzen:
WNetAddConnection2

Ist selbstredend dann nur unter Windows lauffähig.

Ansonsten gibt es einige Win32 API Wrapper Projekte.
Hier habe ich leider keine Empfehlung aber einfach mal Google benutzen:
.net Win32 API wrapper

Und ausprobieren ... wird sicherlich die eine oder andere brauchbare Implementation dabei sein.

29.11.2019 - 15:45 Uhr

Einfach zu sagen, dass Portable Apps einfach migrierbar sind: sehr oberflächlich, wenig realitätsnah.

Ebenso wie mir zu unterstellen dass ich das, ohne es jemals gemacht zu haben, sagen würde.
Also vertrau mir wenn ich sage das ich meine portablen Programme schon öfter migriert habe und das reibungslos und ohne Probleme funktioniert hat 😉
Your mileage may vary ...

Klar gibt es Programme die sich "portabel" nennen es aber nicht sind.
Aber echte "portable" Programme sind eben tatsächlich so das sie nichts am System verändern außer unterhalb ihres eigenes Stammverzeichnisses.

Wer der portabilität nicht traut kann es ja selbst testen und verifizieren (z. B. Sysinternals System Monitor, "Testmigration" usw.)

29.11.2019 - 15:10 Uhr

Ich setze fast nur portable Programme ein, damit meine Systeme möglichst stabil bleiben.

Dann solltest du wissen das Visual Studio Code durchaus einen "Portable" Modus hat:
https://code.visualstudio.com/docs/editor/portable

Ich kann deine Argumentation verstehen.
Und auch wenn ich die Ansichten meiner Vorredner nur eingeschränkt teile, so muß ich zumindest zustimmen das es einen Unterschied ist ob ich einen Treiber installiere oder ob ich ein normales Programm installiere.
Selbst da gibt es gewaltige Unterschiede, selbst innerhalb Versionen.
Vergleiche Visual Studio vor 2017 zu VS 2017 ... und Visual Studio zu Visual Studio Code.

Hinzu kommt das seit Windows 7 sich IMHO die Systemstabilität bei Windows durch Programminstallation deutlich gebssert hat. Vor Windows 7 war das wirklich schlecht. Aber ich finde Windows 7 und Windows 10 halten sich da wacker.

Aber ich bin auch ein Freund von Portable Programmen, nicht zuletzt wegen der einfachen Migrierbarkeit auf neue Rechner 😉

28.11.2019 - 20:57 Uhr

Und grundsätzlich wäre natürlich ein Link zu der entsprechenden API Dokumentation auch hilfreich, da können wir evtl. mehr mit anfangen anstatt mit dem Codefragment das offensichtlich nicht funktioniert.

Grundsätzlich kann es nämlich sein das du den API Key nicht im Header übertragen mußt, oder der Key anders heißen muß, oder der Wert unter Umständen noch speziell formatiert sein muß etc.
Das alles würde evtl. aus der Doku hervorgehen.

Weitere mögliche Fehlerquelle ist natürlich auch das du die Werte scheinbar aus einer Textbox ausliest.
Hier können sich natürlich auch Fehler einschleichen. Leerzeichen am Anfang oder am Ende etc.
Oder du benutzt gar das falsche Textbox Element (weil du sie verkehrt benannt hast etc.)

28.11.2019 - 20:51 Uhr

Der Vollständigkeit würde ich gerne noch erwähnen das ASP.NET Core seine eigenes kleines
Health-Check Framework mitbringt.

Ich denke das ist das was Abt auch in seinem letzten Satz andeuten wollte:
ASP.NET Core Health Checks

Sicherlich nicht direkt was du suchst/brauchst, aber evtl. eine Hilfsmöglichkeit um wiederum andere Tools einfacher mit Daten zu versorgen.

28.11.2019 - 20:44 Uhr

Was du vermutlich suchst ist der -reference Kommandozeilenparameter der csc.exe:

Mit dem kannst du die zu referenzierenden DLLs angeben die der Kompiler "benutzen" soll um die von dir angegebenen Namespaces zu "finden".

Wie meine Vorredner schon gesagt haben wäre es natürlich wesentlich einfacher eine CSPROJ Datei anzulegen da das die ganzen Tools ja für genau solche Zwecke geschaffen wurden die du hier versuchst sehr minimalistisch umzusetzen.

Mich würde hier aus reiner Neugier mal interessieren, was ist denn da der Hintergrund?
Was ist dein Use-case das du eine Quellcodedatei auf einem System kompilieren willst anstatt das du dir auf einem anderen Rechner ein Binary kompilierst und das dann einfach auf jedem gewünschten System ausführst.

03.06.2019 - 22:01 Uhr

Ich finde es auch gut.
Schon damals als UWP neu angekündigt wurde hatte ich das starke Gefühl das es nicht überleben würde.
Irgendwie hat es ein Schattendasein geführt.

04.04.2019 - 21:46 Uhr

Klingt so ziemlich exakt nach dem Problem das ich heute hatte.
Ist wohl ein Bug seitens Visual Studio:
The current .NET SDK does not support targeting .NET Core 2.2. Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.2.

Fix: (Zitat aus Link)

How to fix the issue?...
Install 2.2.1xx version of the SDK if you are targetting a 2.2 app.

Das hat bei mir auch tatsächlich geholfen!

22.11.2017 - 11:14 Uhr

Probier doch mamal bitte anstatt

powershell.AddParameters("$zahlen", bytes)

die Variable ohne das $ Symbol.
Also so:

powershell.AddParameters("zahlen", bytes)

Im Powershell Script die aber weiterhin die $zahlen verwenden!

Und dein Powershell Script sollte so aussehen:

param ([Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [byte[]] $zahlen)
return $zahlen

Also ohne das Args[0]

Idealerweise testest du das Script mal außerhalb deines Codes ob es das tut was du erwartest und versuchst es dann über deinen Code anzusteuern um eine Mischung von diversen Problemen zu vermeiden. Nur so als Vorschlag 😉

20.09.2015 - 15:08 Uhr

...
.Result sollte man dringend vermeiden, denn es unterdrückt Exceptions.

Magst du uns mal die Aussage erklären, denn die verstehe ich nicht ganz:
Die Result Property wirft beim Zugriff eine AggregateException wenn der Task abgebrochen wurde oder während der Ausführung eine Exception ausgelöst wurde.
Zitat von: Task(TResult).Result Property (System.Threading.Tasks)

The task was canceled. The AggregateException.InnerExceptions collection contains a TaskCanceledException object.

-or-

An exception was thrown during the execution of the task. The AggregateException.InnerExceptions collection contains information about the exception or exceptions.

20.09.2015 - 00:35 Uhr

So spontan hätte ich gesagt in dem du die folgende Property des Task Objekts benutzt: Task(TResult).Result Property (System.Threading.Tasks)

18.09.2015 - 22:00 Uhr

Serialisieren muß man nicht zwingend in eine Datei ...
Was du vermutlich willst: c# - Serialize an object to string - Stack Overflow
Zumindest dürfte dir damit der Grundansatz klar sein und du erreichst dein Ziel damit auf jeden Fall.

15.09.2015 - 22:30 Uhr

Und nicht vergessen ... ein USB Stick kann (in der Theorie) auch mehr als ein logisches Laufwerk beinhalten (Stichwort Partition) (oder auch gar keins, bzw. keine Laufwerksbuchstabenzuordnung)

15.09.2015 - 22:27 Uhr

Mal versucht einen anderen Rechner zu nutzen oder eine VM (VirtualBox, Hyper-V, VMWare etc.) aufzusetzen um zu sehen ob das Problem da auch auftritt?
Ich meine wenn es ein generelles Problem wäre, hätte man das bestimmt schon in den IT-Nachrichten gelesen ob jemand anderes hier hätte das gleiche (oder ein ähnliches Problem).
Muß also irgendwas spezifisches sein ... mein Verdacht irgendeine Unverträglichkeit auf dem System (andere Programminstallation, Treiber etc.) daher mal probieren ob das auf einem anderen Rechner/VM auch auftritt ...

14.09.2015 - 17:50 Uhr

Hast du das Problem denn wenn du dein Programm aus der Entwicklungsumgebung heraus testest?
Denn dann kann es sein, das durch den Build Prozess deine geänderte App.config Datei wieder durch die im Projekt befindliche überschrieben wird.

10.09.2015 - 20:44 Uhr

Was anderes als Encoding würde mir da aber spontan nicht einfallen.
Wenn also der eingelesene String Umlaute enthält, ist das FileReading schon mal nicht das Problem.
Hier wird also offensichtlich das richtige Encoding verwendet (implizit oder explizit).

Das heißt es kann nur noch am schreiben liegen:
Und wenn du die Datei mit dem richtigen Encoding geöffnet hast, sollte eigentlich hier auch der richtige Wert in der Datei landen.
Dein "soweit ich weiß" macht mich jetzt allerdings etwas stutzig. Du bist dir also nicht sicher ob du Encodings verwendet hast?

Du siehst also, warum ich ohne den echten Code nicht wirklich nachvollziehen kann wo das Problem herkommen könnte.

10.09.2015 - 20:30 Uhr

Kannst du dein Problem etwas mit Codeauszügen näher erläutern?
Was heißt "liest er richtig"? Wie/wo hast du das verifiziert?
Was und wie schreibst du das wieder wohin?

Denn im Moment kann ich mir zumindest nicht vorstellen woher genau dein Problem kommen soll, vor allem weil du schon mit Encodings gearbeitet hast, deiner Aussage nach.

06.09.2015 - 16:11 Uhr

Und was noch keiner so direkt zum Ausdruck gebracht hat: || ist ein logisches Oder
Das heißt


isAdult || isChild 

ließt sich eigentlich wie:


isAdult oder isChild;

Vielleicht verstehst du den Ausdruck und das Ergebnis damit noch ein wenig einfacher ...

04.09.2015 - 14:10 Uhr

Wie so erzeugst du es eigentlich immer neu. Ändere doch einfach die Visible eigenschaft.

Hatte das so am Anfang so umgesetzt.
Doch dann kamen die Speicher bzw. Benutzer-Objekt Fresser. Da ich das Webbrowser CTRL in Verdacht hatte, hab ichs jedesmal neu erzeugt.
Dachte das wäre die Lösung.

Demnach läge aber die Vermutung nahe das es ein Speicherleck im Webbrowser Control selbst gibt gegen das du nichts machen kannst.

01.09.2015 - 14:40 Uhr

ODBC läßt sich grundsätzlich unter Windows CE nicht nutzen, laut c# - Windows embedded CE 6.0 and Odbc - Stack Overflow

31.08.2015 - 18:29 Uhr

Ja, da hast du recht. Da habe ich LocalSystem und LocalService tatsächlich verwechselt.
Danke für das Aufmerksam machen!
Denn LocalService:

It has minimum privileges on the local computer and presents anonymous credentials on the network. LocalService Account (Windows)
Und denn hatte ich im Sinn als ich meine Vermutung geschrieben hatte.
Mea culpa.

30.08.2015 - 00:26 Uhr

Ich kann das aus eigener Erfahrung bestätigen:
Ich habe mal in einer Firma gearbeitet in der genau das passiert ist.
Es wurde ein Easteregg-Spiel in eine Business-Anwendung eingebaut wurde.
Nachdem das Easteregg gefunden wurde und die Runde gemacht hat, kam eine ziemliche Welle der Entrüstung und Erbostheit auf unsere Firma zu.
Es wurde zwar in unserer Firma keiner entlassen, aber Ermahnungen wurde ausgesprochen.

29.08.2015 - 08:43 Uhr

Vielleicht zeigst du uns einfach mal besagte Schleife damit wir uns besser ein Bild machen können wie die Problemstelle aussieht.

Grundsätzlich stimme ich meinen Vorredner aber zu, bis jetzt bin ich auch nicht sonderlich überrascht über die CPU Auslastung.

26.08.2015 - 12:43 Uhr

Berücksichtige auch die Remarks von SmoApplication.EnumAvailableSqlServers Method (Microsoft.SqlServer.Management.Smo)

Wenn das bisher funktioniert hat und auf einmal nicht mehr, wäre nun eigentlich der logische Schritt herauszufinden was sich an der Umgebung geändert hat seitdem es nicht mehr funktioniert.
Die Ursache liegt vermutlich nicht im Code ...

26.08.2015 - 12:08 Uhr

Soweit ich weiß muß dafür der "SQL Server Browser Dienst" auf den Maschinen mit dem SQL Server ausgeführt werden.

Schau auch mal hier: c# - SmoApplication.EnumAvailableSqlServers Does Not Retrieve Local Server Instances - Stack Overflow

26.08.2015 - 09:46 Uhr

Nächstes Treffen:
Wann?
Mittwoch 07.10.2015 um 19:00 Uhr

Wo?
Solid IT
Bahnhofstraße 7
74072 Heilbronn
Germany
(solid IT: IT-Dienstleister)

Inhalt:
Thema des Abends ist ASP.Net MVC 5. Wir wollen live ein kleines Lunchroulette-Portal implementieren. Der Vortrag wird ca. 1,5 Stunden dauern, danach kann noch ein wenig geplaudert werden.

Vortrag ASP.Net MVC 5 mit @hndnug in Heilbronn | Events bei XING

25.08.2015 - 11:44 Uhr

Da ich deinen Code nicht kenne du jetzt aber die Lösung kennst, wirst du vermutlich besser entscheiden können ob und wie du das machen kannst.

Fakt ist, jedes Element das im gleichen Namespace existieren soll, muß eben die gleiche Namespace-Uri vorangestellt bekommen.
Wie du das am besten bewerkstelligst, kann ich an dieser Stelle nicht beurteilen.

25.08.2015 - 11:42 Uhr

Wer entscheidet denn nachher was für ein Wert das ist?
Dein Code oder irgendein Fremdcode?
Wenn es dein Code ist kannst du dennoch ein Hochkomma verwenden für den Fall das es ein normaler Wert ist und das Hochkomma weglassen wenn es eine Formel ist.
Wenn es Fremdcode ist wird die Sache schon komplizierter.

Unabhängig davon:
Ist es doch so das eine Formel immer mit = anfängt, oder nicht?
Daran könntest du festmachen ob du Hochkomma für den Wert verwendest oder eben nicht ...

Zumindest würde ich den Ansatz mal verfolgen.

25.08.2015 - 10:31 Uhr

Der folgende Code produziert bei mir das gewünschte Ergebnis:

            XDocument xdoc = new XDocument();
            xdoc.Declaration = new XDeclaration("1.0", "utf-8", "yes");

            XNamespace projectNS = "http://www.blablablubb";
            XNamespace projectXSD = "http://www.w3.org/2001/XMLSchema";
            XNamespace projectXSI = "http://www.w3.org/2001/XMLSchema-instance";

            XElement root = new XElement(projectNS + "Project");


            root.Add(new XAttribute(XNamespace.Xmlns + "xsd", projectXSD.NamespaceName));
            root.Add(new XAttribute(XNamespace.Xmlns + "xsi", projectXSI.NamespaceName));


            XElement xElement1 = new XElement(projectNS + "xElement1");
            
            xElement1.Add(new XAttribute("Attribut1", "asdf1"));
            xElement1.Add(new XAttribute("Attribut2", "asdf2"));
            root.Add(xElement1);

            XElement xElement2 = new XElement(projectNS + "xElement2");
            xElement2.Add(new XAttribute("Attribut1", "asdf1"));
            xElement2.Add(new XAttribute("Attribut2", "asdf2"));
            root.Add(xElement2);

Beachte den Unterschied:

            XElement xElement1 = new XElement(projectNS + "xElement1");

zu vorher:

            XElement xElement1 = new XElement("xElement1");
25.08.2015 - 08:25 Uhr

Also, ich schreib dir mal Pseudocode damit du auch ein wenig selbst grübeln mußt (sonst ist da kein Lerneffekt)
RechenElemente ist dein Array mit den einzelnen Bestandteilen
Ich gehe davon aus das du in diesem Array bereits echte Zahlen hast. Wenn nicht müßtest du nur an geeigneter Stelle noch eine Umwandlung vornehmen (die Stelle findest du bestimmt selber).

Methode Rechnen()
{
variable Rechenvariable = 0
variable NächsteRechenOperation;
für jedes Element in RechenElemente
{
    Wenn Element:
        Rechenoperation +:              
        Rechenoperation -:
                NächsteRechenOperation = Element
        Etwas anderes:

               RechenVariable = FühreOperationAus(NächsteRechenOperation, Rechenvariable, Element)

}
}

Methode FühreOperationAus(Operation, Wert1, Wert2)
{
Wenn Operation:
     Rechenoperation +:
          = Addieren(Wert1, Wert2)

}

Methode Addieren(Wert1, Wert2)
{
= Wert1 + Wert2
}

Ich habe den Code jetzt nicht ausprobiert, kann also sein das er noch die einer oder andere Fehlerstelle enthält (oder auch gar nicht funktioniert? 🤔 )
Auch habe ich bewußt die andere Methode weggelassen, die kannst du dir, wenn du das Prinzip vertanden hast, bestimmt selbst dazu bauen.
Aber so ungefähr stelle ich mir das Prinzip auf Einsteigerfreundlichem Niveau vor.

Es gäbe da mit Delegaten, und ähnlichen fortgeschrittenen Konzepten Möglichkeiten dies eleganter zu gestalten aber zuerst mal solltest du das so hin bekommen damit du deine Denkblockade löst und die Grundlagen lernst.

25.08.2015 - 08:08 Uhr

Du willst das es so aussieht, oder?

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Project xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.blablablubb">
  <xElement1 Attribut1="asdf1" Attribut2="asdf2" />
  <xElement2 Attribut1="asdf1" Attribut2="asdf2" />
<Project/>
24.08.2015 - 23:07 Uhr

Trivial ist die Lösung nicht ...
Die vermutlich einsteigerfreundlichste Lösung ist eine Schleife die durch die das Array geht und auf "Operator" oder "Zahl" prüft.
Im Falle von "Zahl" den String erstmal in eine echte Zahl umwandelt (Int32.Parse Method (String) (System) oder Int32.TryParse Method (String, Int32) (System))
Im Falle von "Operator" einen switch/case Block (switch (C# Reference)) durchwandert der je nach "Operator" dann die eigentliche Operation durchführt.

Ich hoffe das die grobe Vorgehensweise reicht um dir einen Lösungsansatz aufzuzeigen.

24.08.2015 - 21:14 Uhr

Wenn die einzelnen Komponenten wirklich immer mit einem ; voneinander getrennt sind, kannst du ganz einfach die String.Split Method (Char[]) (System) verwenden.
Damit bekommst du jedes Teil sauber getrennt und kannst dann die einzelnen Komponenten weiterverarbeiten wie du willst (z.B. in Float parsen)

24.08.2015 - 18:39 Uhr

So genau habe ich mir das nicht angesehen.
Aber ich habe gesehen das es eine REST basierte API gibt. Das sollte ausreichen ...
Diese kannst du unter anderem mit WebRequest Class (System.Net) "ansprechen".

24.08.2015 - 18:26 Uhr

Wie wäre es mit der API direkt vom Hersteller: Nike+ Developer Portal
API

24.08.2015 - 17:14 Uhr

Ein Projekt kannst du auch unentgeltlich ausschreiben und auf andere Art bezahlen:
Ein Kasten Bier, oder ein leckeres Steak oder sonst was ...

Ich fürchte du gehst die Sache einfach etwas zu "chaotisch" an.
Schritt-für-Schritt empfehle ich dir die komplexe Aufgabe anzugehen und Teilabschnitte zu lösen.
Schritte die ich sehe:

  1. Datei komplett einlesen. Ziel: Gesamte Datei als Byte Array ins Programm zu bekommen
  2. Dateiinhalt verändern: Ziel: Die entsprechenden Bytes im Byte Array sind so verändert wie du dir das vorstellst.
  3. Neue Datei schreiben: Ziel: Das Byte Array wird mitsamt den gemachten Änderungen wieder auf die Platte geschrieben.
    (Optional: 4. Probleme mit der neuen Datei analysieren und Lösungen finden. 😄 )

Also, ran an Schritt 1 und vergiss die anderen Sachen.
Sobald du Schritt 1 hast machst du genauso mit Schritt 2 etc. und am Ende hast du was du suchst.

24.08.2015 - 17:09 Uhr

Und da wir das an dieser Stelle ja jetzt Pro-Aktiv geklärt haben, kann er uns ja jetzt den eigentlichen Grund nennen warum er das braucht, denn sonst fällt mir auch nichts ein 😉

24.08.2015 - 16:51 Uhr

Naja, du mußt uns ja auch nicht auf den Keks gehen denn es ist ja nicht so als ob das Internet nicht alle Antworten für dich schon bereithält:
c# - An elegant way to consume (all bytes of a) BinaryReader? - Stack Overflow

Da steht wie du eine komplette Datei als Byte Array einliest.
Und ich bin mir sicher das verändern und schreiben bekommst du auch hin wenn du dich ein wenig "umschaust"
Und wenn es doch mal partout nicht klappen sollte weil es doch mal etwas "komplizierter" wird dann darsft du uns gerne wieder "nerven", da wird dir dann niemand böse sein.

Es darf eben nur nicht der Eindruck entstehen das du andere die Arbeit machen läßt und du dich selbst nicht wirklich bemühst ...

Und wenn du es im Zweifelsfall doch von jemandem anderen lassen machen möchtest dann kannst du ja ein Gesuch ins passende Unterforum stellen: Jobbörse

24.08.2015 - 16:43 Uhr

Wieviel Daten du ändern willst ist egal, solange dein Arbeitsspeicher reicht ... bzw. die Datei nicht an die Grenzen des Prozessadressraums sprengt (ich glaube bei 32 bit waren das rund 2 GB +/- Management Overhead etc.)
Nachdem das gesagt ist, solange deine Configdatei nicht riesengroß ist kannst du sie wirklich komplett einlesen ... dann in dem eingelesen Array alle deine Änderungen (1 MB wenn es sein muß 😉) durchführen und dann das geänderte Array wieder als Binärdatei speichern und schon hast du was du willst.

24.08.2015 - 16:38 Uhr

Hast du denn den Code mal ausprobiert?
Wie sieht denn das XML danach aus?

24.08.2015 - 16:36 Uhr

Nein, aber wozu meinst du das zu benötigen?

Vielleicht braucht er das auch für Entwicklungsumgebung für .Net-Framework 3.5 Compact Edition gesucht

23.08.2015 - 17:13 Uhr

Hmmm, jede Datei ist vom Grundsatz her Binär auf der Platte gespeichert.
Vom Grundsatz her kannst du also jede Datei Binär einlesen und auch Binär wieder schreiben.
Was du dazwischen machst, also zum Beispiel Binärwerte in Hexwerte umrechnen / darstellen und diese Werte verändern bleibt dabei komplett deiner Fantasie überlassen.
Um Dateien binär einzulesen hilft dir vermutlich der BinaryReader Class (System.IO)

Und zum Umrechnen von byte arrays in Hexwerte (wenn du das dann noch brauchst) kannst du Google bemühen. Hier ein Beispiel:
c# - How do you convert Byte Array to Hexadecimal String, and vice versa? - Stack Overflow

23.08.2015 - 15:31 Uhr

Nächstes Treffen:
Dienst den 25.08.2015 um 19 Uhr

Wo?
Irish Pub
(Lammgasse 30, 74072 Heilbronn)
http://www.irishpub-heilbronn.de/

5, Treffen der .Net Usergroup Heilbronn in Heilbronn | Events bei XING

22.08.2015 - 18:08 Uhr

Durch das (versehentliche) weglassen von "public" definierst du die Klasse als private und kannst sie damit nicht als event argument einer anderen public Klasse verwenden.
Als Korrektur/Ergänzung dazu: Die fehlende Angabe der Klassensichtbarkeit führt dazu, dass die Klasse internal und nicht private ist.
Elementdefinitionen ohne Sichtbarkeitsmodifikator innerhalb einer Klasse/Struct sind jedoch private.

Danke für die Korrektur. Da war ich doch jahrelang in einem Irrglauben.
Nicht das es mich gestört hätte weil ich sowieso immer einen access modifier angebe 😉
Dennoch gut zu wissen.

22.08.2015 - 17:56 Uhr

Der Fehler steckt in der Zeile:

class DataTransferEventArgs : EventArgs

Korrekt heißt es

public class DataTransferEventArgs : EventArgs

Durch das (versehentliche) weglassen von "public" definierst du die Klasse als private und kannst sie damit nicht als event argument einer anderen public Klasse verwenden.

21.08.2015 - 18:57 Uhr

Na aber wenn das Refresh Problem an der Seite selbst liegt, dann würde ich sagen hast du ein Problem.
Ich sehe nicht wie du ein Serverseitiges-Update beeinflussen willst.

Ja, ich sehe was du meinst wenn man die Seite refreshed ... hmmm, ok also ich habe leider keine weiteren Ansätze für dein Problem.

21.08.2015 - 18:20 Uhr

Einen Timer in dein Programm das in dem von dir gewünschten Interval die Seite in deiner Komponente neu lädt.
Das ist die vermutlich einsteigerfreundlichste Variante.