Laden...

Forenbeiträge von rizi Ingesamt 402 Beiträge

21.02.2011 - 09:17 Uhr

DANKE SCHÖN!!!

Lg
rizi

21.02.2011 - 09:06 Uhr

@herbie

Danke für die schnelle Antwort, wie würde man es machen, wenn die Eingangsparameter nicht modifiziert werden dürften??

danke
rizi

21.02.2011 - 08:29 Uhr

Hi, ich stand schon öfters vor folgendem Problem:


public class Data{
   public double Latitude{get;set;}
   public double Longitude{get;set;}
   public string Text{get;set;}
}


pubilc class BusinessLogic{
   public IEnumerable<Data> GetDataFromDAL(int id){
      IEnumerable<Data> data = dal.GetData(id);
      ModifiyData(data);
    }

    public void ModifyData(IEnumerable<Data> data){
       //zb.
       foreach(var currData in data){
          currData.Longitude += 0.001;
       }
     }
}

So wie ich es im obigen Code dargestellt habe sollte es ja nicht sein, richtig??
Eingangsparameter sollten soweit ich weiß nicht verändert werden, wie wäre die richtige Herangehensweise für so etwas?

Folgende Idee:
Die Mehtode ModifyData gibt ebenfalls IEnumerable<Data> zurück, erzeugt also innerhalb der Methode eine neue List, die Frage die sich mir nun stellt: ich müsste eigentlich auch neue Data Objekte erstellen(Stichwort IClonable), die Werte von currData übernehmen u. zb. 0.0001 dazu addieren. (neue Objekte deshalb erstellen, denn es handelt sich ja um Instanzen innerhalb der Liste, daher würde es meiner Meinung nach nicht ausreichen eine neue Liste zu erstellen u. die modifizierten Daten-Objekte zu adden.

Wie seht ihr das, gibt es eine Pattern das dieses Problem löst??

Danke & Lg
rizi

03.05.2010 - 22:58 Uhr

Danke für die Info & danke fürs Umbenennen des Themas.

Lg
rizi

03.05.2010 - 21:55 Uhr

@winSharp93
minValue und maxValue sind ebenfalls int-werte:
zb:

ValidateFieldIsInRange(5, 1, 9);

ohne Nullable funktioniert es, allerdings wird Nullable hier benötigt, ist allerdings anhand des obrigen Beispiels nicht zu erkennen!

Meine Frage ist eben warum dieses Nullable diesen Einfluss hat.

bzw. wenn man null für value verwendet kann man sich das <int> ebenfalls sparen:
Bsp.:

ValidateFieldIsInRange(null, 1, 9);

Bin für weitere Tipps dankbar.

lg
rizi

03.05.2010 - 20:54 Uhr
public void ValidateFieldIsInRange<T>(T? value, T minValue, T maxValue) where T : struct, IComparable<T>
{

          if(minValue.CompareTo(value.Value)>0 || maxValue.CompareTo(value.Value)<0)
                  //do something

}

Folgender Aufruf der Methode funktioniert nicht:

ValidateFieldIsInRange(5, minValue, maxValue);

Folgender Aufruf der Methode funktioniert:

ValidateFieldIsInRange<int>(5, minValue, maxValue);

Was ich nicht verstehe ist,warum explizit <int> angeben werden muss!

Kann mir jemand auf die Sprünge helfen?

Danke schön
rizi

13.04.2010 - 12:12 Uhr

@schaedld

Wow, vielen Dank für die Mühe, dann werde ich mir mal dieses Rating Control ansehen.

danke schön
rizi

13.04.2010 - 11:22 Uhr

Nein, das Ergebnis kommt bereits aus der DB, ich will es nur noch darstellen, allerdings kann ich mit DataBinder.Eval() nichts in eine Variable speichern, die sich im CodeBehind File befindet, diese brauche ich aber damit ich mit
if(i≤ RatingResult)....

festlegen kann wieviele Sterne angezeigt werden.

Auf dieses Verhalten kann ich keinen Einfluss nehmen,da das jQuery Plugin es so vorsieht.

lg
rizi

13.04.2010 - 10:06 Uhr

hi schaedld

es geht um diesen code:

 <input name="<%=uniqueName %>" type="radio" class="star" value="<%=i%>" disabled="disabled"
                     <% if(i <= RatingResult){ %>
                        checked="checked" <%} %> />
            <%} %>

dabei handelt es sich um ein jQuery Rating Plugin (natürlich müssen noch ein paar javascript+bilder eingebunden werden)
Und mit der Variable RatingResult wird angegeben wieviele Sterne beim RatingControl angezeigt werden.

Lg
rizi

12.04.2010 - 21:28 Uhr

Hi, schön langsam verzweifle ich, ich nutze die ASP.NET DataList, dies sieht folgendermaßen aus:

<asp:DataList ID="dlBlogEntries" runat="server" >    
    <ItemTemplate>
        <fieldset class="fieldsetCreateWidth">
         
            
            <%for (int i = 1; i <= 5; i++){ %>
             <%# RatingResult = (int)DataBinder.Eval(Container.DataItem, "RatingResult")  %> 
             <input name="<%=uniqueName %>" type="radio" class="star" value="<%=i%>" disabled="disabled"
                     <% if(i <= RatingResult){ %>
                        checked="checked" <%} %> />
            <%} %>
        </fieldset>
    </ItemTemplate>

Was ich machen möchte ist, das Ergebnis des Ausdrucks in eine Variable speichern die sich im CodeBehind befindet, ich versuche dass bis jetzt so:

<%# RatingResult = (int)DataBinder.Eval(Container.DataItem, "RatingResult") %>

Allerdings wird das Ergebnis immer in den HTML Code geschrieben anstatt in die Variable gespeichert.

Kann mir jemand sagen wie ich das bewerkstelligen kann, möglicherweise ist ja DataBinder.Eval() einfach der falsche Ansatz.

Danke vielmals

Lg
rizi

20.10.2009 - 10:01 Uhr

warum kann ich dann ein DateTime Objekt ueberhaupt uebergeben und damit arbeiten aber keinen Cast durchfuehren, ist nicht ganz logisch fuer mich!

lg
rizi

20.10.2009 - 09:50 Uhr

hi, ich habe folgende Klasse:

 public class ValueRangeValidator<TValueType>  where TValueType : IComparable<TValueType>{
private TValueType rangeMin;

public ValueRangeValidator(TValueType min){
  rangeMin = min;
}

public void Test(){
  if(rangeMin is DateTime){
      DateTime test = (DateTime)rangeMin; //fuehrt zu Compilerfehler
  }
}
}

Mich wuerde jetzt interessieren warum ich hier schon einen Compiler-Fehler erhalte, dass der gezeigte Cast nicht gueltig ist.

Warum passiert der Fehler nicht erst zur Laufzeit falls kein DateTime-Objekt in rangeMin steckt ???

Danke fuer eure Hilfe

Lg
rizi

19.10.2009 - 10:38 Uhr

Hier gibts eine kl. Anleitung, C#-Code findest du etwas weiter unten bei den Kommentaren.
http://allwrong.wordpress.com/2007/03/13/ms-ajax-autocomplete-extender-using-a-page-method/
Lg
rizi

06.10.2009 - 10:16 Uhr

@Peter, ich benutze AutoFac und im Application-Start Event wird die Config aufgerufen die für die gesamte Application gültig sind, diese wird definitiv nicht aufgerufen, da ich eine exception erhalte, dass autofac nicht initialisiert ist. weiters logge ich in application_start, sehe aber keinen log eintrag.

Sobald ich auf Classic.net AppPool umstelle wird das Event ausgeführt, sprich ich kann es im Debug-Modus sehen, AutoFac funktioniert und der Log Eintrag ist da.

Das gleiche Phänomen tritt ebenfalls auf einen anderem Rechner auf(wie gesagt sogar unterschiedliche Betriebssystem)

Lg
rizi

06.10.2009 - 08:28 Uhr

Hi, mir ist aufgefallen das es zumindest beim IIS7 (möglich, dass es das auch schon früher gab) zwei verschiedene AppPools gibt, kann mir jemand den genauen unterschied erklären, ich habe schon einige Definitionen gefunden, allerdings ist mir der Unterschied nicht wirklich klar.

Weiters ist mir aufgefallen, dass im DefaultAppPool nie das Event Appliction_Start in der global.asax aufgerufen wird, ich habe den IIS resetet, die Site um die es geht resetet, den AppPool resetet. Andere Events wie Session_Start funktionieren allerdings.

Im Classic .Net Pool funktioniert dieses Event wunderbar..

Hat jemand eine Idee warum das so ist, bzw ist das möglichweise sogar gewünscht?

Ich habe das "Event-Problem" auf zwei verschiedenen Rechnern(einmal Win 7 Enterprise final und einmal Windows Vista Business) ausprobiert, tritt bei beiden auf.

lg
rizi

17.05.2009 - 14:58 Uhr

danke für die lösung werde ich mir mal ansehen!
aber eigenartig, dass so einfache dinge nicht "ordentlich" funktionieren,...

lg
rizi

17.05.2009 - 08:53 Uhr

das ist eine "ganz normale" textbox aus der toolbox, keine ableitung gar nichts. und das keyUp-Event ist das einzige Event das ich aboniert habe. es gibt leidiglich noch einen button der ein klick-event aboniert hat aber das sollte damit nichts zu tun haben.

edit:
habe jetzt für testzwecke eine neue form mit einer textbox drauf erstellt, keine events aboniert und genau das gleiche standardmäßig passiert bei STRG+A garnichts!!!

Was ich noch vergessen hatte zu erwähnen, bei der TextBox habe ich Multiline auf true gesetzt!!!

lg
rizi

16.05.2009 - 22:42 Uhr

@rechner, dass habe ich bereits probiert, leider ohne erfolg

@winSharp93, dass dachte ich bisher auch,aber dem ist nicht so, ohne meinem Code im KeyUp-Event, passiert bei STRG+A leider gar nichts!

lg
rizi

16.05.2009 - 19:28 Uhr

hi, habe schon nach dem problem gegoogelt und auch hier wurde es schon behandelt, aber ich kann keine Lösung finden.

Mein Problem ist folgendes, ich habe eine TextBox, dort handle ich das KeyUp-Event, hier der Code dazu:


private void TextBox_KeyUp(object sender, KeyEventArgs e)
        {
            var textBox = sender as TextBox;

            if (textBox != null)
            {
                if (e.Control && e.KeyCode == Keys.A)
                {
                    textBox.SelectAll();
                }
            }
        }

mit diesem Event realisiere ich lediglich, dass mit STRG+A der ganze Text markiert wird.

und genau wenn ich STRG+A drücke dann funktioniert zwar alles so wie es soll, allerdings höre ich ein "beep".

Eine Lösungsmöglichkeit ist das Key_Pressed Event zu abonnieren und dort handled=true zu setzten, dass funktioniert, d.h ich höre keine "beep" mehr, allerdings kann ich dann mit STRG+V keinen Text aus der Zwischenablage in die TextBox einfügen, entferne ich das handled = true im Key_Pressed Event funktioniert alles wunderbar bis auf das nervige "beep"!!

hat jemand von euch eine Idee/Tipp??

Danke vielmals
rizi

28.04.2009 - 12:46 Uhr

nicht unbedingt, es gibt möglichkeiten, das eingelesene jpg-file wieder in der gl. qualität abzuspeichern.

28.04.2009 - 11:52 Uhr

hier die Lösung, es werden alle Metadaten entfernt:



        public byte[] RemoveMetadataFromImage(byte[] fullImage)
        {
            Image img;

            using (var ms = new MemoryStream(fullImage))
            {
                using (img = Image.FromStream(ms))
                {
                    PropertyItem[] propertyItems = img.PropertyItems;
                
                    //alle Metadaten löschen
                    foreach (var item in propertyItems)
                    {
                        img.RemovePropertyItem(item.Id);
                    }

                    return ImageToByteArray(img);
                }
            }
        }
27.04.2009 - 14:52 Uhr

Hi, suche eine Möglichkeit Metadaten von jpg Datein zu entfernen, ich habe schon einige Tools wie zb. jhead gefunden, allerdings müsste ich es mit c# lösen, da dieses bild vom kunden mithilfe einer asp.net seite hochgeladen wird und dann weiterverarbeitet wird, die komponente(sql 2008 reportingservices) die es weiterverarbeitet kann allerdings nicht mit metadaten umgehen und wirft eine exception.

Jetzt habe ich die Anforderungen, dass es gleich nach dem Bild-Upload geschehen muss u. das aus .net(c#) heraus!

Für Hilfe/Tutorials/Tipps wäre ich sehr dankbar!

Danke Schön

rizi

28.03.2009 - 09:02 Uhr

Hi, Leute ich suche ein gutes Buch, muss jetzt nicht unbedingt C# sein, dass erklärt wie man ein Plugin-System richtig aufbaut, bzw was genau das ist wo die Vor/Nachteile liegen. Eventuell auch wie man es umsetzt.....

Außerdem suche ich ein Buch, dass sich nur mit Reflection/Latebinding auseinandersetzt!

Wäre super wenn Ihr mir helfen könntet, habe schon bei google und amzone gesucht aber nichts brauchbares gefunden!
Möglichweise ist auch Plugin-System/Architektur der falsche Begriff dafür??

lg
rizi

16.03.2009 - 13:04 Uhr

super danke für die links

16.03.2009 - 08:58 Uhr

Hi @all!

Wollte mal wissen ob Ihr Literatur speziell für das PluginPattern kennt bzw. Bücher wo es vorkommt!
Müssten wirklich Bücher bzw. Fachzeitschriften sein, also eher kein Wiki etc...

Die meisten Bücher, die ich bis jetzt durchstöbert habe, sparen nämlich dieses Pattern aus, weil es kein "klassisches" ist!

Thx
rizi

29.01.2009 - 20:20 Uhr

super danke für den tipp mit dem placeholder!

lg
rizi

29.01.2009 - 19:45 Uhr

hi, erstmals sorry für die "dummen" titel!

ich habe noch nicht besonderst viel mit asp.net gemacht u. jetzt habe ich ein "problem".
und zwar ich bekomme eine liste von images soweit so gut, u. diese möchte ich dann mittels

<asp:image .....>

anzeigen, nun weiß ich nicht wie ich die images richtig positionieren kann! mach ich das im code-behind?
bzw. muss ich im markup einen platzhalter definieren wo ich das dann hinhaben will, weil die anzahl der images in der liste sind ja dynamisch u. deswegen muss ich auch dyn. die <asp:image....> erzeugen, aber ich weiß nicht wie ich diese an passender stelle positionieren kann!

hoffe ich konnte mich deutlich ausdrücken!

lg
rene

22.01.2009 - 12:30 Uhr

stimmt natürlich, danke schön!

manchmal sieht man den wald vor lauter bäumen nicht 😉

lg
rizi

22.01.2009 - 12:21 Uhr

Hi, wie realisiert man es richtig, wenn man einen Zeichenvorgang hat, der lange dauern kann? in einem extra thread soll man ja nicht, weil man nur im gui-thread zeichnen kann/soll!

Der Zeichenvorgang kann schon mal 20 - 50 secs dauern und währendessen würde das gui ja nicht responsable sein! ausserdem würde ich gerne eine progressbar anzeigen, damit der user weiß, dass die applikation noch arbeitet!

lg
rizi

20.01.2009 - 16:46 Uhr

hi, wärst du zuvor so nett und änderst deine code-darstellung, denn so kann man kaum etwas lesen!
stichwort: CSHARP-Tag
lg
rizi

06.12.2008 - 15:18 Uhr

@herbievore, ich habe dich leider nicht verstanden was du meinst, deshalb nochmals meine frage ordentlich formuliert, sollte man es so machen:

try{
//dosomething()
}
catch(SpezielleException1 sp1){

}
catch(SpezielleException2 sp2){

}
catch(SpezielleException3 sp3){

}
catch(Exception e){ //<--- ist das hier gut oder nicht
}

wenn ich das catch(Exception e) weglassen würde und ich eine SpezielleException vergessen habe bzw gar nicht genau wusste das sie auftreten kann,dann stürzt das prog einfach ab.
Oder kann man gleich nur sagen:

try{
//dosomething()
}
catch(Exception e){

}

<-- weil diese variante reicht ja eigentlich,wenn ich dem user sagen will,was passiert ist oder täusche ich mich?

so wie macht man es richtig, welche variante ist wann zu bevorzugen??

danke
rizi

06.12.2008 - 14:45 Uhr

erstmal danke für alle antworten!!

@herbivore, o.k alle fangen, und am schluss auch noch extra catch Exception() falls man eine nicht bedacht hat bzw eine unerwartete auftritt?? denn ansonsten würde das prog je einfach abstürzen??? was halltet ihr davon??

lg
rizi

06.12.2008 - 10:46 Uhr

hi,ich wollte mal fragen, wie man das Exception Design gestalltet, damit meine ich, wenn man zb. mit einem Stream etwas von der Festplatte liest können zb folgende exceptions auftreten:

*)FileNotFoundException
*)SecurityException
*)ArgumentNullException

usw.... die oben genannten Exceptions sind nur beispiele, müssen jetzt also nicht 100% stimmen!!

so und wie würdet ihr das machen wenn ihr diese methode aufruft?
so:

try{
//CallMethode
}
catch (FileNotFoundException fne){
//todo
}
catch(SecurityException se){
//todo
}
catch(ArgumentNullException ane){
}

oder würdet ihr nur catch(Exception e) <-- sollte man ja eigentlich nicht machen??

wie macht man es am besten/richtigsten, wenn man den user informieren will, das da etwas schief gegangen ist!

danke für die hilfe!

lg
rizi

17.11.2008 - 09:40 Uhr

so,es klappt jetzt genau so wie ichs vorher gehabt habe,ich habe keine ahnung wo das problem war,muss irgendein, kleiner flüchtigkeitsfehler gewesen sein!

trotzdem vielen,vielen danke für eure hilfe!

lg
rizi

17.11.2008 - 09:13 Uhr

@kleines_eichhörnchen bin mir ziemlich sicher,dass er mein config-file benutzt, denn wenn ich das debug level im config-file auf OFF stelle, wird nichts mehr auf der console/ins file geloggt.

das andere werde ich mal probieren, was du mir genannt hast!

lg
rizi

16.11.2008 - 19:44 Uhr

hier die initialisierung:

 private ILog log;

        public MyLoger(){
            InitializeLog4Net();
       }
 
        private void InitializeLog4Net() {
            log4net.Config.XmlConfigurator.Configure();
            log = log4net.LogManager.GetLogger(typeof(Uebung3.Service.MyService));
        }

hier die verwendung:

 public void DoLogging(String message, LogState state) {
            switch (state) {
                case LogState.DEBUG:
                    this.log.Debug(message);
                    break;
                case LogState.INFO:
                    this.log.Info(message);
                    break;
                case LogState.WARNING:
                    this.log.Warn(message);
                    break;
                case LogState.ERROR:
                    this.log.Error(message);
                    break;
                case LogState.FATALERROR:
                    this.log.Fatal(message);
                    break;
            }
        }

LogState habe ich selbst definiert:

 public enum LogState {
        ALL,
        OFF,
        DEBUG,
        INFO,
        WARNING,
        ERROR,
        FATALERROR
    }

ein Bsp.-Aufruf:

this.logger = new MyLogger();
            this.logger.Log("Test-Fatal", LoggState.FATALERROR);

es wird auch der richtige-switch-zweig aufgerufen..
keine ahnung an wann es liegt..

lg
rizi

16.11.2008 - 18:42 Uhr

@Joetempes ist schon klar, deshalb habe ich FATAL gewählt,weil über FATAL gibt es keine Level mehr und daher sollte nur FATAL ausgegeben werden, aber ich habe schon alle Stufen im config-file ausprobiert u. das ergebnis war immer,das gleiche es wurde immer alles ausgegeben, ausser natürlich wenn ich im config-file auf OFF stelle,dann wird wie erwartet nichts ausgegeben!!

wäre für weitere tipps/hilfe dankbar!

lg
rizi

16.11.2008 - 17:17 Uhr

hi Joetempes, mein code ist zu 100% ident!
verstehe ich vielleicht irgendetwas falsch??

wie macht man das richtig,dass zb nur die fatal-errors ausgegeben/geloggt werden.

es sollte doch nur die leveln ausgegeben werden die im log-file eingestellt sind, also zb
level = "FATAL", wenn ich log.Fatal("faltal-error...")

oder verstehe ich das falsch?!

lg
rizi

16.11.2008 - 15:43 Uhr

hi,irgendwie verstehe ich anscheinend log4net falsch...

ich habe im config file

<root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
</root>

so und in meinem programm mache ich das so:

log.Debug("babal");

log.Fatal("Fatal-error);

log.Info("Infor...");

so jetzt hätte ich mir erwartet wenn ich im config file,das level auf fatal stelle,dass ich auch nur fatal meldungenn bekomme dem ist aber nicht so ich sehe weiterhin alle meldungen, aber warum??

der rest funktioniert super,d.h es werden die meldungen auf der console u. im file ausgegeben,so wie im config-file eingestellt?!

was mache/verstehe ich da falsch?

lg
rizi

14.11.2008 - 14:00 Uhr

hi,danke BhaaL, aber partial klassen komme ich hier nicht weiter,es wäre jetzt zu aufwendig mein problem zu beschreiben! aber ich habes jetzt anders gelöst, war kein problem nur wäre meine idee mit den extension methods die einfachste/schnellste für mich gewesen! hatte gehofft das man zb mit einem attribut angeben kann was verwendet werden soll,aber egal danke für die hilfe/tipps!

lg
rizi

14.11.2008 - 10:48 Uhr

o.k thx, wäre in meinem konkreten fall am einfachsten gewesen!

lg
rizi

14.11.2008 - 09:27 Uhr

hi, ist es möglich,dass ich mir folgende extension method definiere:


public static class MyExtensions{
   public static String ToString(this Object obj){
        Gruppe group = obj as Gruppe;
       
        if(group != null)
            return group.Name;

       return obj.ToString();
    }

   //allternative
    public static String ToString(this Gruppe group){           
       return group.Name;
    }
}

ich hätte hald gerne, das meine ExtensionMethod anstatt der ToString von Object aufgerufen wird, ist das möglich?

meine ExtensionMethod compiliert ganz normal, also ich erhalte auch keine Warnung dass es net sinnvoll ist oder so?
aber es wird immer die ToString von Object aufgerufen, egal welche ExtionsMethod ich oben definiert habe!

wäre für hilfe dankbar!

lg
rizi

07.11.2008 - 20:14 Uhr

hi,es lag am Interface, ich habe zwar gelesen,dass man das mit dem KnownType Attribute lösen kann,habes aber persönlich nicht zum Laufen bekommen, wenn ich anstatt des Interfaces die konkrete Klasse verwende,klappt alles super!
außerdem habe ich gelesen, dass man keine Interface bei einem Service zurückgeben soll, wegen der Interoperabilität!

was sagt ihr sind interfaces hier wirklich nicht gut ?
bzw falls jemand noch eine site/tutorial kennt wie man das mit interfaces lösen kann,wäre ich für tipps dankbar!

lg
rizi

07.11.2008 - 10:16 Uhr

o.k danke hulkstar,da habe ich dich missverstanden, davon stand nämlich nichts im oben angeführten tutorial!!

gleich mal testen!

big thx

rizi

07.11.2008 - 08:48 Uhr

@ kl.eichhoernchen werde ich heute im laufe des tages probieren, genau so wie den tipp mit dem viewer....

lg
rizi

07.11.2008 - 08:33 Uhr

erstmals danke,ich werde mir das mal mit dem tracer ansehen..

kannst du mir sagen wo ich den viewer für dienstabläufe genau finde: [erledigt]

bezüglich des kontrakts ich habe einen kontrakt

der eben genau diese zwei methdoen enthält!!

und IBenutzer was ja im dictionary drinnen ist kennen ja beide also client + service.

u. wenn ich nur ein leeres dictionary zurückgebe funktionierts ja einwandfrei bzw. wenn ich im dictionary als values nur null habe, d.h dictionary an sich muss dann wohl möglich sein.

lg
rizi

06.11.2008 - 19:12 Uhr

hi,habe dieses kl. Tutorial von der msdn ausprobiert:
http://msdn.microsoft.com/en-us/library/ms734712.aspx

das klappt so weit auch ganz gut allerdings bekomme ich immer eine exception, die aussagt das der server unerwartet die verbindung getrennt hat, auch die inner-exception sagt das gleiche!!

ich habe ein service das hat im moment nur zwei methoden:

Dictionary<String,IUser> GetUsers();
int GetId(IUser obj);

wenn mein client GetId aufruft klappt alles wunderbar und ich bekomme auch einen int zurück.

Wenn ich jedoch GetUsers() aufrufe bekomme ich die oben genannte fehlermeldung.
Das eigenartige ist, wenn ich ein leeres DIctionary zurückgebe, klappt alles wunder bar auch wenn im dictionary nur keys u. als values null drinnen ist.

so sieht mein Dictionary<String,IUser> GetUsers() aus:

Dictionary<String,IUser> GetUsers(){
Dictionary<String,IUser> list = new Dictionary<String,IUser>();

   list.Add("TestUser",new Benutzer("name des users");

   return list;
}

Benutzer ist eine Klasse von mir die das Interface IUser implementiert...

die Interfaces die ich verwende, wie zb IUser sind in einer eigenen library(.dll) datei, diese referenzieren sowohl der client als auch das service selbst, damit der client dann eben auf IUser-Objekte zugreifen kann.

Hat jemand eine Idee an was das liegen kann??

lg
rizi

27.10.2008 - 18:26 Uhr

o.k erstmals danke,kannst du mir das mit den sprites im 3d raum noch etwas genauer erklären bzw kennst du ein gutes tutorial dafür?!

lg
rizi

27.10.2008 - 17:38 Uhr

hi,suche ein tutorial bzw vielleicht sogar etwas fertiges,dass ich verwenden könnte u. zwar mache ich gerade ein kl. 3d raumschiff-spiel, wenn mein raumschiff jetzt gegen einen asteoriden knallt möchte ich gerne eine explosion darstellen!
habe auch ein beispiel von microsoft gefunden,aber das war etwas too much für mein kl. spiel!
sprites kommen soweit ich das verstanden habe nicht in frage,weil diese lediglich auf 2d-raum plaziert werden können ich brauche aber 3d.

particle system ist glaube ich dass was ich brauche,aber ich bräuchte etwas recht einfaches/simples...

wäre für hinweise/tipps sehr dankbar!

lg
rizi

10.10.2008 - 07:43 Uhr

hi,ich haette noch eine kl. frage zu nhibernate, man kann im mapping-file angeben cascade = "save-update", ich weiß es gibt hier mehrere möglichkeiten,aber ich interessiere mich für diese hier,nun zu meiner frage:

ISession persistSession = sessionfactory.OpenSession();

                Group newGroup = new Group();
                newGroup.Name = "nhibernate";
                
                User newUser = new User();
                newUser.Name = "user1";
                newUser.Login = "test";

                using (persistSession.BeginTransaction()) {
                    persistSession.Save(newGroup);
                    persistSession.Transaction.Commit();
                }

                using (persistSession.BeginTransaction()) { //punk v. interesse
                    newGroup.Users.Add(newUser);
                    persistSession.Transaction.Commit();
                }

ich lege hier eine neue gruppe an,diese speichere ich,o.k das wird von nhibernate mal in die db gespeichert. was mich jetzt ziemlich interessiert ist das zweite persistSession.BeginTransaction(), hier speichere ich einen neuen User in die neue Gruppe, wobei Users eine generic List ist.

Wie erkennt nhibernate jetzt,dass sich das gruppen objekt geändert hat u. etwas in die db eingetragen werden muss, also welcher mechhanismus steckt dahinter,dass nhibernate ein fremdes objekt auf änderungen überwachen kann??

lg
rizi