Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von rollerfreak2
Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ist falsch, parso hat vom FixtureSetup geschrieben das ist in der Tat nicht ausreichend. Aber auf der Seite war es unten mit als Unterlink aufgeführt den ich wohl übersehen habe.
Das von mir gepostete ist ein SetUp Attribute und erfüllt genau das was ich brauche, zwar mit ein paar unschönen Randbedingungen aber taugt trotzdem!

Edit: Ich nehme alles zurück. Die Doku von den Attributen ist irreführend bzw. verwirren sie zumindest mich. DAs SetUp Attribute ist das falsche weil das für jeden Test im Fixture gerufen wird. Das SetupFixture Attribut kann dazu benutzt werden.

Zitat
This is the attribute that marks a class that contains the one-time setup or teardown methods for all the test fixtures under a given namespace. The class may contain at most one method marked with the SetUpAttribute and one method marked with the TearDownAttribute.

There are a few restrictions on a class that is used as a setup fixture.

* It must be a publicly exported type or NUnit will not see it.
* It must have a default constructor or NUnit will not be able to construct it.
Sorry für die Missverständnisse ich versuch das jetzt mal so.

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich glaub das hier sieht vielversprechend aus Setup/TearDown Attribute.

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mir fällt ja nicht mal eine umständliche Lösung ein, wenn du eine hast dann wäre ich dir Dankbar wenn du sie mir mitteilst.

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

In dem Fall hast du recht, wir missbrauchen das Framework für Integrationstests. Ändert aber nichts an meinem Problem :(

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@Mabo: Die Tests sind in sich abgeschlossen, aber dadurch eben langsam (In unserem Fall). Daher die versuchte Optimierung.

Es gibt via Addin die Möglichkeit, sich in den TestRunStarted und TestRunFinished zu hängen, jedoch gibt es diese Möglichkeit nicht als Attribut. Warum das so ist bleibt das Geheimnis der NUnit Entwickler.

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Und in wieweit soll mir das helfen? Die Attrbiute sind mir doch längst bekannt nützen aber nichts, denn ich brauche einen Call vor dem gesamten Lauf und nach dem gesamten lauf.

Thema: NUnit (2.5.10)-> Event/Attribute Tests finished
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wir lassen verschiedene TestFixtures innerhalb eines Assemblies laufen. Was wir wollen ist nicht für jedes Fixture das unterliegende Framework zu initialisieren und im FixtureTearDown zu Disposen. Wir wollen das Ganze einmal pro Lauf. Jetzt könnte ich mich zwar auf das AppDomain.CurrentDomain.ProcessExit hängen um dort zu Disposen, das löst aber nicht alle Probleme.

Das Initialisieren des Frameworks muss zwingend immer vom gleichen Thread accessed werden (Das kann ich leider nicht ändern). Das geht so lange ich einen gesamten Lauf für sich betrachte. Startet aber jemand ein einzelnes Fixture, z.B. via UI und anschließend ein weiteres, dann knallt es beim 2ten weil das Fixture in einem neuen TestRunner der in einem neuen Thread läuft ausgeführt wird. Ich habe schon versucht das zu unterbinden aber keine Lösung gefunden. Was mir eigentlich fehlt ist ein Event/Attribute ala der TestLauf ist beendet. Dort kann ich dann einfach Dispose vom Framework aufrufen. Oder aber der TestRunner wird immer mit dem gleichen Thread erzeugt solange die NUnit Instanz die gleiche ist.

Bin für jede Info Dankbar.

Edit: Die Möglichkeit IAddin zu implementieren ist nicht praktikabel weil die Tests in verschiedenen Umgebungen ausgeführt werden, die das unter Umständen nicht unterstützen.

Thema: FxCop Rule VisitMethodCall -> Methoden calls werden nicht aufgelöst
Am im Forum: Rund um die Programmierung

Hab das Problem jetzt gefunden. Das Resolve wird halt nicht direkt sondern indirekt gerufen.

Wenn man den nested Type der vom Compiler erzeugt wird mit analysiert, dann findet man in der MoveNext Implementierung den Resolve Aufruf. (IL_0026)


.method private hidebysig newslot virtual final 
        instance bool  MoveNext() cil managed
{
  .override [mscorlib]System.Collections.IEnumerator::MoveNext
  // Code size       78 (0x4e)
  .maxstack  2
  .locals init ([0] bool CS$1$0000,
           [1] int32 CS$4$0001)
  IL_0000:  ldarg.0
  IL_0001:  ldfld      int32 OpCode.Program/'<GetInterfaces>d__0'::'<>1__state'
  IL_0006:  stloc.1
  IL_0007:  ldloc.1
  IL_0008:  switch     ( 
                        IL_0019,
                        IL_0017)
  IL_0015:  br.s       IL_001b
  IL_0017:  br.s       IL_0040
  IL_0019:  br.s       IL_001d
  IL_001b:  br.s       IL_0048
  IL_001d:  ldarg.0
  IL_001e:  ldc.i4.m1
  IL_001f:  stfld      int32 OpCode.Program/'<GetInterfaces>d__0'::'<>1__state'
  IL_0024:  nop
  IL_0025:  ldarg.0
  IL_0026:  call       object OpCode.Program::Resolve()
  IL_002b:  newobj     instance void OpCode.Interface::.ctor(object)
  IL_0030:  stfld      class OpCode.IInterface OpCode.Program/'<GetInterfaces>d__0'::'<>2__current'
  IL_0035:  ldarg.0
  IL_0036:  ldc.i4.1
  IL_0037:  stfld      int32 OpCode.Program/'<GetInterfaces>d__0'::'<>1__state'
  IL_003c:  ldc.i4.1
  IL_003d:  stloc.0
  IL_003e:  br.s       IL_004c
  IL_0040:  ldarg.0
  IL_0041:  ldc.i4.m1
  IL_0042:  stfld      int32 OpCode.Program/'<GetInterfaces>d__0'::'<>1__state'
  IL_0047:  nop
  IL_0048:  ldc.i4.0
  IL_0049:  stloc.0
  IL_004a:  br.s       IL_004c
  IL_004c:  ldloc.0
  IL_004d:  ret
} // end of method '<GetInterfaces>d__0'::MoveNext

Thema: FxCop Rule VisitMethodCall -> Methoden calls werden nicht aufgelöst
Am im Forum: Rund um die Programmierung

Hi herbivore,

das hab ich auch erst gedacht. Aber selbst wenn ich im Main das Foo rufe um das Enumerable auszuführen sieht der IL identisch aus.


public static void Main(string[] args)
{
    foreach (var itf in GetInterfaces())
    {
        itf.Foo();
    }
}

.method public hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpCode.IInterface> 
        GetInterfaces() cil managed
{
  // Code size       14 (0xe)
  .maxstack  1
  .locals init ([0] class OpCode.Program/'<GetInterfaces>d__0' V_0,
           [1] class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpCode.IInterface> V_1)
  IL_0000:  ldc.i4.s   -2
  IL_0002:  newobj     instance void OpCode.Program/'<GetInterfaces>d__0'::.ctor(int32)
  IL_0007:  stloc.0
  IL_0008:  ldloc.0
  IL_0009:  stloc.1
  IL_000a:  br.s       IL_000c
  IL_000c:  ldloc.1
  IL_000d:  ret
} // end of method Program::GetInterfaces

Thema: FxCop Rule VisitMethodCall -> Methoden calls werden nicht aufgelöst
Am im Forum: Rund um die Programmierung

Ich habe ein Problem mit einer eigenen FxCop Regel. Ich möchte alle Methoden Aufrufe analysieren und dabei werden nicht alle aufgelöst. Speziell die innerhalb eines "yield return" werden nicht aufgelöst. Gegeben ist exemplarisch folgendes:


public interface IInterface
{
    void Foo();
}

internal class Interface : IInterface
{
    private readonly object m_Obj;

    public Interface(object obj)
    {
        m_Obj = obj;
    }

    public void Foo()
    {
        throw new NotImplementedException();
    }
}

class Program
{
    static void Main(string[] args)
    {
        var interfaces = GetInterfaces();
    }

    private static IEnumerable<IInterface> GetInterfaces()
    {
        yield return new Interface(Resolve());
    }

    private static object Resolve()
    {
        return new object();
    }
}

Worum es mir geht ist der Methoden Call von Resolve() innerhalb des yield return. Der IL Code sieht so aus:

.method private hidebysig static class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpCode.IInterface> 
        GetInterfaces() cil managed
{
  // Code size       14 (0xe)
  .maxstack  1
  .locals init ([0] class OpCode.Program/'<GetInterfaces>d__0' V_0,
           [1] class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpCode.IInterface> V_1)
  IL_0000:  ldc.i4.s   -2
  IL_0002:  newobj     instance void OpCode.Program/'<GetInterfaces>d__0'::.ctor(int32)
  IL_0007:  stloc.0
  IL_0008:  ldloc.0
  IL_0009:  stloc.1
  IL_000a:  br.s       IL_000c
  IL_000c:  ldloc.1
  IL_000d:  ret
} // end of method Program::GetInterfaces

Im FxCop hab ich schon mehreres Versucht. Es wird für die Rückgabe ein Compile Generiertes Object zurück gegeben. Soweit so klar. Aber ich komme einfach nicht an den MethodCall vom Resolve() ran.


...
Visit(method.Body);
foreach (InstanceInitializer instanceInitializer in method.Instructions().Select(t => t.Value).OfType<InstanceInitializer>())
{
    Visit(instanceInitializer.Body);
}
...

Weiß einer wie ich wirklich an ALLE Methodenaufrufe heran komme? Gleiches Problem wird sicherlich auch bei Lamda's auftauchen.

Thema: Events und Threads - wie ist der Kontex?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Diese Frage kann man, ohne zu wissen wann intern das MyEvent gefeuert wird, nicht beantworten.

Thema: Events und Threads - wie ist der Kontex?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn das ein und die selbe Instanz von Class ist dann bringt dir das nichts, weil dann immer alle angemeldeten Events gefeuert werden.

Thema: Events und Threads - wie ist der Kontex?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die userId wird in deinem Fall Lamda immer userId == 123 sein. So wird es also nicht funktionieren.
Du müsstest die userId im Lamda irgendwie vom WebRequest ermitteln.

Thema: Tfs -> Query deep History
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich bin auf der Suche nach einer Möglichkeit alle Änderungen an einem Source Item auf einem beliebigen Child Branch zu ermitteln. Gegeben ist z.B. folgende Branch Hierarchie.

         A
        / \
       B   C
          /  \
         E    D
Wenn ich nun eine Item in der Hand habe z.B. $D\file.cs und mir dann mit Query History alle Changesets dieses Items hole bekomme ich leider nur die Changesets von diesem Branch, nicht jedoch die Änderungen auf E,C,A und B.


var changes = m_Version.QueryHistory(@"$D:\File.cs", VersionSpec.Latest, 0, RecursionType.Full, null, new ChangesetVersionSpec(1), VersionSpec.Latest, int.MaxValue, true, false);

Ich hab jetzt schon einiges versucht mit TrackMerge und QueryMerge jedoch ist die TFS API Doku nicht gerade hilfreich. Wichtig ist das ich eine Lösung brauche die Branch unabhängig ist, daher die Branch Hierarchie ist mir unbekannt. Weiß einer einen performanten Weg dies zu erreichen?

Thema: Used via Reflection Attribute for Resharper
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das klingt gut, ich schau mal ob der Resharper es mit interpretiert.

Edit: Klappt wunderbar. Danke

Thema: Used via Reflection Attribute for Resharper
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi zusammen,

kennt einer von euch ein Attribute das man an eine Methode/Property/Field schreiben kann um dem Resharper zu sagen das dieser Member keine direkte Referenzierung hat jedoch via Reflection gecalled wird?

Thema: Event zum notifizieren wenn die Netzwerk Verbindung geändert hat getrennt/verbunden
Am im Forum: Netzwerktechnologien

Ich hab einen guten Artikel gefunden und probiere das ganze jetzt mal aus.

Code Project

Thema: Event zum notifizieren wenn die Netzwerk Verbindung geändert hat getrennt/verbunden
Am im Forum: Netzwerktechnologien

Hi zusammen,

ich such nach einem Event auf das ich micht anmelden kann damit ich notifiziert werde wenn sich die Netzwerkverbindung getrennt hat.

Connected->Unconnected
Unconnected->Connected

Versucht habe ich schon NetworkChange.NetworkAvailabilityChanged.
Das wurde jedoch nicht gefeuert, weder wenn ich das Netzkabel ziehe noch wenn ich die Schnittstelle deaktiviere.

BTW: Ich würde nur ungern auf die Netzwerkverbindung pollen.

Hat einer von euch einen Tipp für mich?

Thema: [gelöst] Aus eigenem Tool heraus selektiertes Source File in einer aktiven VS Instanz öffnen
Am im Forum: Rund um die Programmierung

Habs jetzt gelöst. Einfach das DTE object vom laufenden Prozess holen und der Rest ist dann geschenkt.

How do I get the DTE for running Visual Studio instance?

Thema: [gelöst] Aus eigenem Tool heraus selektiertes Source File in einer aktiven VS Instanz öffnen
Am im Forum: Rund um die Programmierung

Ich rede von *.cs Dateien. Ich glaube du hast mich falsch verstanden. In meinem Tool soll man eine selektiertes Source File in einer aktiven VS Instanz öffnen können.

Thema: [gelöst] Aus eigenem Tool heraus selektiertes Source File in einer aktiven VS Instanz öffnen
Am im Forum: Rund um die Programmierung

Hallo zusammen,

weiß einer eine einfache Möglichkeit von außerhalb der IDE (VS2010/VS2012) eine Datei innerhalb einer Instanz davon zu öffnen?

Es geht darum das ich ein Tool habe und von dort aus möchte ich ein bestimmtes File in einem aktiven VS öffnen.

Danke im voraus.

Thema: Mehrfach TakeWhile auf IEnumerable<T>
Am im Forum: Datentechnologien

Jo alternativ weiß ich schon wie ich das bastelt kann. Mir ging es nur um eine mögliche reine Linq Lösung.

Thema: Mehrfach TakeWhile auf IEnumerable<T>
Am im Forum: Datentechnologien

Hi zusammen,

ich stehe grad ein bisschen auf dem Schlauch. Ich glaube zwar das es out of the Box mit Linq so nicht geht aber vielleicht übersehe ich irgendwas.

Gegeben:
List:
1)Element : BaseElement
2)Element : BaseElement
3)OtherElement : BaseElement
4)Element : BaseElement
5)OtherElement : BaseElement
6)Element : BaseElement
7)Element : BaseElement

Was ich haben will ist:
IEnumerable<IEnumerable<Element>>

Wie ich das einmal bekomme ist klar:


list.SkipWhile(t => !(t is Element)).TakeWhile(x => x is Element);

Aber wie kann ich mit Hilfe von LINQ Multiple Partions machen?

Thema: Mocking: suche kleines Beispielprogramm, an d. man Mocking Tests (Rhino) beispielhaft aufzeigen kann
Am im Forum: Rund um die Programmierung

Hi zusammen,

ich suche eine kleines Beispielprogramm für Dokumentationszwecke an denen man Mocking Tests (Rhino) beispielhaft aufzeigen kann. Ich dachte da so an 10-15 Klassen die nach Möglichkeit SOLID entwickelt wurden und ein bisschen miteinander interagieren. Hat einer eine Idee wo ich da etwas einfaches und verständliches finden kann?

Danke im voraus!

Thema: ReflectionTypeLoadException beim Durchsuchen einer Dll per Reflection nach bestimmten Attribut
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Entweder parallel zu der zu ladenden oder sie ist im GAC registriert. System Assemblies werden automatisch aufgelöst!

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das habe ich doch bereits schon mehrmals gemacht. Allerdings erhalte ich nie unused Methods. Auch in den Settings wie oben der dialog zeigt habe ich unter unused nur 4 Sachen gefunden die alle nicht das erwünschte ergeben!

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Auf diesen Link bin ich auch schon gestoßen!

Zitat
First enable "Analyze Errors In Solution" (right-click on the Resharper icon in the status bar)

Es gibt bei mir ein Resharper Icon in der Statusbar. Und das Analyze Errors in Solution habe ich auch nirgend gefunden.

Edit: Habs jetzt in den Settings gefunden. Hab es mal angeschalten und schau mal ob jetzt nicht verwendete Interface Methoden von (internal deklariert) gefunden werden!

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Unused code/methods ist dort leider nicht einstellbar.

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi Console32,

hab den neusten Resharper (7.1.1) drauf aber leider keine Lasche "unused Code" in dem Analyzing Result. Ich habe nur die folgenden:

    Common Practices and Code Improvements
    Compiler Warnings
    Constrains Violations
    Language Usage Opportunities
    Potential Code Quality Issues
    Redundancies in Code
    Redundancies in Symbol Declarations

Kann man das noch irgendwo anschalten? Es sind in der analisierten Solution definitiv unbenutze Codestellen.

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi zusammen,

es gibt ja im Resharper das Find usage um z.B calls auf Methoden zu finden. Dann sucht der Resharper innerhalb der gesamten Solution nach Aufrufen dieser Methode. Das ist ein nettes Feature.

Ich bräuchte das aber für jede Methode an jedem Interface das in der Solution definiert ist. Und davon hätte ich gern alle Methoden die überhaupt nicht gerufen werden. (Die könnte ich dann nämlich löschen weil alle potentiellen Aufrufer innerhalb der gesamten Solution definiert sind).

Eventuell kennt einer ein VS2010 Plugin oder Resharper Plugin oder sogar ein Refector Plugin das mich bei diesem Prozess unterstützen kann.

Danke im voraus!