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 Michael Schuler
Thema: caliburn.micro binding conventions für das toolkit ListPicker Control auf WP7
Am im Forum: GUI: WPF und XAML

Hallo zusammen

Für ein neues Projekt habe ich caliburn.micro gewählt, und stecke nun beim DataBinding mit dem ListPicker fest. Wenn ich statt des ListPickers eine normale DropDown nehme, funktioniert das Binding wie es soll. Also es werden alle Elemente angezeigt und bei einer Auswahl wird das SelectedItem Property korrekt gesetzt.

Im Quellcode des Frameworks habe ich folgenden Eintrag gefunden:

AddElementConvention<Selector>(Selector.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
    .ApplyBinding = (viewModelType, path, property, element, convention) => {
        if (!SetBinding(viewModelType, path, property, element, convention))
            return false;

        ConfigureSelectedItem(element, Selector.SelectedItemProperty,viewModelType, path);
        ApplyItemTemplate((ItemsControl)element, property);
        return true;
    };

Da der ListPicker aber nicht von Selector erbt, funktioniert dies nicht. Daher habe ich meinem Bootstrapper eine CustomConvention hinzugefügt:

static void AddCustomConventions() {
    AddElementConvention<ListPicker>(ListPicker.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
        .ApplyBinding = (viewModelType, path, property, element, convention) => {
            ConventionManager.ConfigureSelectedItem(element,
                ListPicker.SelectedItemProperty,viewModelType, path);
            return true;
        };
}

Leider funktioniert das so nicht, es werden in der Liste keine Einträge angezeigt.

btw: ich habe die gleiche Frage noch auf StackOverflow gestellt.

Bin froh um jeden Hinweis!

LG Michael

Thema: GridView Spalten verlieren Wert beim späteren hinzufügen/entfernen
Am im Forum: GUI: WPF und XAML

Hallo zusammen

Ich habe ein Grid, welchem ich zur Laufzeit neue Spalten hinzufüge oder entferne. Diese DataGridComboBoxColumn-Spalten habe ein ItemsSource- sowie ein SelectedItem-Binding.

Das Problem ist nun, sobald ich die Spalten einmal ausgeblendet habe und danach wieder einblenden möchte, funktioniert das SelectedItem-Binding nicht mehr, die Spalten sind dann einfach leer. Ich habe das gleiche Verhalten, wenn ich die Spalten jedes Mal lösche und dann wieder neu erstelle und hinzufüge.

So erstelle ich meine Spalte im CodeBehind:

private static DataGridColumn GetListColumn(ListAttribute attribute, BindingBase binding) {
    string path = string.Format(
        CultureInfo.InvariantCulture,
        "AttributeValues.Attributes[{0}].ListItems",
        attribute.ID);

    var sourceBinding = new Binding {
        Path = new PropertyPath(path)
    };

    var column = new DataGridComboBoxColumn();
    var style = new Style(typeof(ComboBox));
    style.Setters.Add(new Setter(ItemsControl.ItemsSourceProperty, sourceBinding));
    column.ElementStyle = style;
    column.EditingElementStyle = style;
    column.SelectedItemBinding = binding;
    column.DisplayMemberPath = "Name";

    return column;
}

Und so lösche oder erstelle ich die Spalten:

private void UpdateColumns() {
    foreach (var attributeColumn in _attributeColumns) {
        GridItems.Columns.Remove(attributeColumn);
    }
    _attributeColumns.Clear();

    if (ViewModel.EditorType == SectionEditorType.Attribute) {
        var builder = new AttributeColumnBuilder();
        var attributes = ((PartsSubViewModel)ViewModel).SectionPartAttributes;

        foreach (var column in builder.GetColumns(attributes)) {
            _attributeColumns.Add(column);
            GridItems.Columns.Add(column);
        }
    }
}

Damit man sich das besser vorstellen kann, habe ich ein Bild angehängt.
Die Spalte, die noch Werte anzeigt, ist eine die im XAML definiert und daher nicht betroffen ist.

Danke für jede Hilfe,
LG Michael

Thema: Webserver seit Liveschaltung völlig ausgelastet
Am im Forum: Web-Technologien

Hallo talla

Der ConnectionString ist

Data Source=127.0.0.1;Initial Catalog=db;User ID=usr;Password=pw;MultipleActiveResultSets=true;
Wie bereits erwähnt, hat mich googeln, resp. bingen, auf das One Session per Request Pattern aufmerksam gemacht, das von NHibernate empfohlen wird. Ich habe dies nun mit einem HttpModule umgesetzt, was eine grosse Besserung bezüglich der Server-Last brachte.
Aktuell habe ich einzig noch ab und zu das Problem, dass ich eine LazyInitializationException erhalte. Aber nicht wirklich reproduzierbar. Kann es sein, dass die Session an den Objekten haften bleibt, wenn ich diese über Threadgrenzen hinweg in einem CacheService behalte?

Thema: Webserver seit Liveschaltung völlig ausgelastet
Am im Forum: Web-Technologien

Hallo MarsStein

Danke für die schnelle Antwort. Es handelt sich bei der Datenbank um ein SqlServer 2008 R2 Express. Die DB befindet sich auf dem gleichen Server und hat eine durchschnittliche CPU-Auslastung von unter einem Prozent, daher liegt es kaum an der Datenbank :(

Ich bin beim googeln auf das "One Session per Request"-Pattern gestossen, welches man mittels HttpHandler implementieren soll. Hat da jemand einen Vorschlag, wie man das am besten implementieren soll? Habe bisher Codesnippets für asp.net mvc gefunden, nicht für classic asp.net.

Liebe Grüsse
Michael

Thema: Webserver seit Liveschaltung völlig ausgelastet
Am im Forum: Web-Technologien

Hallo Community

Seit einem halben Jahr arbeite ich an einem Projekt, welches am 2. Januar veröffentlicht wird. Seit heute, 1. Januar, sind die switch-Umstellungen (switch.ch ist die Schweizer Domain-Registrierungsstelle) gemacht und seit dann ist die Seite permanent überlastet. Auf dem Server läuft der w3wp.exe Dienst auf 100% und das arbeiten ist fast unmöglich.

Bis gestern hatten wir gar keine Probleme, aber seit der Umstellung geht gar nichts mehr. Wir haben temporär eine index.html Seite erstellt, die anzeigt, dass die Seite derzeit umgestellt wird. Für die index.html Seite habe ich im UrlRewritig die DefaultPage auf index.html gesetzt.


<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="index.html" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">

Zum einen sehe ich in den IIS-Logs diverse Anfragen von Bots, die jedoch alle mit 404 beantwortet werden, da es diese Files nicht mehr gibt.
Zum anderen wird an manchen Stellen via Javascript ein WCF Service aufgerufen mittels DOMAIN/CalenderService.svc/js.

Meist erhalte ich ThreadAbortExceptions von NHibernate, kann aber nicht wirklich einen Fehler beim NHibernate finden. Ich nutze übrigens FluentNHibernate. Zudem habe ich an NHibernate-Mapping ja nichts geändert, seit der Umstellung.

Mittels dem EQATEC-Profiler versuchte ich herauszufinden, wo das Problem liegen könnte, fand aber nichts spezifisches.

Meine grösste Bitte: Wie kann ich den Fehler näher eingrenzen? Wie finde ich heraus, wo das Problem liegt? Gibt es Tools oder Logfiles, die mir weiterhelfen könnten?

Liebe Grüsse
Michael

Anhang

Häufige Exceptions aus dem Logfile

01.01.2011 19:45:45|Error|General|WIN-PRNQ2O17GTP|Type: HttpUnhandledException
Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source: System.Web
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Inner Exception:
Type: ADOException
Message: could not execute query
[ select website0_.Id as Id34_, website0_.Guid as Guid34_, website0_.Name as Name34_, website0_.DefaultPageId as DefaultP4_34_, website0_.DefaultDomainId as DefaultD5_34_ from Website website0_ inner join Domain domains1_ on website0_.Id=domains1_.WebsiteId where domains1_.Name like ? ]
  Name:domain - Value: ?
[SQL: select website0_.Id as Id34_, website0_.Guid as Guid34_, website0_.Name as Name34_, website0_.DefaultPageId as DefaultP4_34_, website0_.DefaultDomainId as DefaultD5_34_ from Website website0_ inner join Domain domains1_ on website0_.Id=domains1_.WebsiteId where domains1_.Name like ?]
Source: NHibernate
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
   at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
   at NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
   at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
   at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
   at NHibernate.Impl.SessionImpl.List(String query, QueryParameters queryParameters, IList results)
   at NHibernate.Impl.SessionImpl.List(String query, QueryParameters parameters)
   at NHibernate.Impl.QueryImpl.List()
   at NHibernate.Impl.AbstractQueryImpl.UniqueResult[T]()
   at Cms.Bll.WebsiteService.GetByDomain(User user, String domain) in C:\Users\Michi\Documents\Programmieren\SVN Projekte\cms für gvc\Cms\Cms.Bll\MediaCenter\MediaContentService.cs:line 262
   at IWebsiteServiceProxy56420579342844c991e288056648cceb.InvocationGetByDomain_1.InvokeMethodOnTarget()
   at Cms.Contracts.Interceptors.LoggingInterceptor.Intercept(IInvocation invocation) in C:\Users\Michi\Documents\Programmieren\SVN Projekte\cms für gvc\Cms\Cms.Contracts\AclProviderService.cs:line 34
   at IWebsiteServiceProxy56420579342844c991e288056648cceb.GetByDomain(User user, String domain)
   at Cms.Web.BasePage.get_CurrentWebsite()
   at Cms.Web.BasePage.OnPreInit(EventArgs e)
   at System.Web.UI.Page.PerformPreInit()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Inner Exception:
Type: SqlException
Message: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
Source: .Net SqlClient Data Provider
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at NHibernate.Connection.DriverConnectionProvider.GetConnection()
   at NHibernate.AdoNet.ConnectionManager.GetConnection()
   at NHibernate.AdoNet.AbstractBatcher.Prepare(IDbCommand cmd)
   at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
   at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session)
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)

Thema: WP7S - Barcode mittels Kamera erkennen
Am im Forum: GUI: WPF und XAML

Hallo, ist das Thema noch aktuell?

Ich habe folgenden Link gefunden:
Reading Barcodes from an Image - III

LG Michael

Thema: [Gelöst] MP4 Video in SMFPlayer abspielen -> AG_E_INVALID_FILE_FORMAT
Am im Forum: GUI: WPF und XAML

Hallo zusammen

Habe das Problem gelöst, es lag an einem falschen (MPEG4) Video-Stream innerhalb des MP4-Containers. Habe nun meinen FFMPEG-Aufruf so angepasst, dass H264 rauskommt. Nun muss der iTunes nur noch merken, dass er das Format trotzdem abspielen kann, das schnallt der noch nicht. Aber das ist ein anderes Problem, kein Silverlight-Problem.

Grüsse
Michael

Thema: [Gelöst] MP4 Video in SMFPlayer abspielen -> AG_E_INVALID_FILE_FORMAT
Am im Forum: GUI: WPF und XAML

Hallo zusammen

Ich versuche nun schon die ganze Woche, Videos im MP4 Format in Silverlight abzuspielen. Gemäss Microsoft ist MP4 mit AAC ja seit Silverlight 3 unterstützt, dennoch erhalte ich die Fehlermeldung 3001 AG_E_INVALID_FILE_FORMAT.

Als Player habe ich den SMFPlayer eingebunden, die Zuweisung im .xaml.cs geschieht folgendermassen:


var videoItem = new PlaylistItem();
videoItem.Duration = TimeSpan.FromSeconds(myMediaContent.Duration);
videoItem.MediaSource = new Uri(myMediaContent.FileDownloadUrl);
mySmfPlayer.Playslist.Add(videoItem);

Der Vollständigkeit halber noch das XAML:

<controls:ChildWindow
	... 
	xmlns:Core="clr-namespace:Microsoft.SilverlightMediaFramework.Core;assembly=Microsoft.SilverlightMediaFramework.Core">

	<Grid x:Name="LayoutRoot" Margin="2">
		... 
		<Core:SMFPlayer MediaFailed="mySmfPlayer_MediaFailed" AllowFullScreenPinning="True" AutoPlay="False" IsControlStripVisible="True" ContinuousPlay="False" Height="317" VerticalAlignment="Top" StartMuted="False" PlayerGraphVisibility="Disabled" LoggingConsoleVisibility="Disabled" Name="mySmfPlayer" ChaptersVisibility="Disabled" CaptionsVisibility="Disabled" PlaylistVisibility="Disabled" />
		
		... 
		... 
	</Grid>
</controls:ChildWindow>

Bei einem wmv-Video funktioniert das auch super, aber da ich die gleichen Videos auch als Podcast anbiete, kann ich nicht wmv verwenden, da der iTunes damit keine Freude hat.

Ich hoffe ihr könnt mir weiterhelfen,
Grüsse Michael

Thema: Statische Objekte in Page_Load Methode sind null.
Am im Forum: Web-Technologien

Guten Morgen Peter

Im File NewPageController.ascx habe ich folgende Einträge von Hand gemacht:

<%@ Register TagPrefix="cms" TagName="NewPageDetailForm" Src="~/Admin/Pages/NewPageDetailForm.ascx" %>
<%@ Register TagPrefix="cms" TagName="NewPageParentChooser" Src="~/Admin/Pages/NewPageParentChooser.ascx" %>
<%@ Register TagPrefix="cms" TagName="NewPageFieldChooser" Src="~/Admin/Pages/NewPageFieldChooser.ascx" %>

Eine andere Web.config habe ich nicht. Im original-Web.config hatte ich die Einträge auch von Hand gemacht gehabt, aber die haben ja eben nicht funktioniert. Für mich hört sich das irgendwie nach Bug an. Evtl. hat es auch damit zu tun, dass die Einträge im Web.config alle den gleichen Tag-Prefix hatten.

LG Michi

Thema: Statische Objekte in Page_Load Methode sind null.
Am im Forum: Web-Technologien

Hallo Peter

In der Web.config habe ich nun folgende Einträge entfernt:


<system.web>
	<pages>
		<controls>
			<add tagPrefix="cms" namespace="Cms.Web.Admin" assembly="Cms.Web"/>
			<add tagPrefix="cms" namespace="Cms.Web.Admin.Pages" assembly="Cms.Web"/>
			<add tagPrefix="cms" namespace="Cms.Web.Admin.Templates" assembly="Cms.Web"/>
		</controls>
	</pages>
</system.web>

Nun registriere ich die Controls auf jeder Page von Hand. So funktioniert es. Sobald ich die Einträge im Web.config wieder hinzufüge, funktioniert es nicht mehr.

Mein Problem ist somit zwar gelöst, aber warum das so ist, verstehe ich nicht...

LG Michi

Thema: Dynimsche Einbindung von Code in Webanwendung
Am im Forum: Web-Technologien

Hallo Phönix

So wie ich das verstehe, ist dir egal, ob es eine consolen-exe oder eine dll ist, korrekt? Dann definiere doch ein interface mit einer Methode im Stil von "Dictionary<string, string> Run(string s)". Dann erstelle beliebig viele DLLs mit Implementationen dieses Interfaces und lade diese DLLs in deine Webanwendung hoch.
DLLs kannst du dynamisch in eine eigene Application Domain laden, dieser Linkzeigt wies geht.
Wenn du dann noch einen File-Watcher auf dein Upload Directory machst, werden die DLLs automatisch geladen, nachdem du das File raufgeladen hast.

LG Michi

Thema: Statische Objekte in Page_Load Methode sind null.
Am im Forum: Web-Technologien

Hallo Peter

Ich habe mal alles in ein Testprojekt extrahiert - und ja, der Fehler tritt immer noch auf. Das Testprojekt habe ich angehängt. Ist ein VS2008 Projekt.
Der Aufruf ist: http://localhost:51139/Admin/NewPage.aspx
Die Logging-Komponente habe ich auch abgehängt, der Fehler tritt aber im NewPageController in der Methode Page_Load auf.

LG Michi

Thema: Statische Objekte in Page_Load Methode sind null.
Am im Forum: Web-Technologien

Gemäss Pagelifecycle werden die Controls aber zwischen PreInit und Init erstellt.

Zitat
Raised after all controls have been initialized and any skin settings have been applied.
Meiner Meinung nach stimmt der Code, könnte das Projekt irgendwie kaputt sein? Ich deploye übrigens nicht via IIS, sondern via VS-integrierten Server.

Thema: Statische Objekte in Page_Load Methode sind null.
Am im Forum: Web-Technologien

Hallo zusammen

Eigentlich bin ich ja kein Web-Anfänger, aber diese Woche fühle ich mich wirklich wie einer. Warum? In der Page_Load Funktion sind meine Objekte (statische, keine dynamischen) null. Und daher erhalte ich logischerweise eine NullReferenceException.

Zuerst einmal der Code:
Default.aspx


...
<div id="content">
	<cms:NewPageController ID="myNewPageController" runat="server" />
	<cms:Login ID="myLoginController" runat="server" />
</div>
...

NewPageController.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="NewPageController.ascx.cs" Inherits="Cms.Web.Admin.Pages.NewPageController" %>

<cms:NewPageDetailForm ID="myNewPageDetailForm" runat="server" />
<cms:NewPageParentChooser ID="myNewPageParentChooser" runat="server" />
<cms:NewPageFieldChooser ID="myNewPageFieldChooser" runat="server" />

NewPageController.ascx.cs


protected void Page_Load(object sender, EventArgs e)
{
	myNewPageDetailForm.Controller = this;
	myNewPageFieldChooser.Controller = this;
	myNewPageParentChooser.Controller = this;

	GoToNextStep();
}

Alle Controls sind in den jeweiligen *.ascx.designer.cs deklariert und in den *.ascx files eingebunden. Sind also statische Controls. Mein Verständnis von ASP.NET ist eigentlich, dass diese Controls während des Lifecycle erstellt werden. Bei mir scheint dies aber nun nicht der Fall zu sein - an was könnte das liegen?
Die Exception taucht in der Klasse NewPageController in der Methode Page_Load in der ersten Zeilte auf.

Danke für die Hilfe,
LG Michi

Thema: [erledigt] Verschachtelte Proxies gibt TargetException
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

dieser Beitrag hat sich erledigt, ich setze nun auf DynamicObjects vom CaslteProject, dort kann man beliebig viele Interceptoren an ein Objekt ranhängen.

LG Michael

Thema: [erledigt] Verschachtelte Proxies gibt TargetException
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen

Für ein aktuelles Projekt nutze ich einen IoC Container, der mir über meinen Service zwei verschiedene Proxies stülpt. Das sieht dann so aus:


var impl = myContainer.Resolve<T>();
var logger = myContainer.Resolve<ILoggingService>();
var cacheService = myContainer.Resolve<ICacheService>();
impl = getCachingProxy<T>(impl, cacheService);
impl = getLoggingProxy<T>(impl, logger);
return impl;

Die Funktion getCachingProxy sieht so aus, diejenige für den LoggingProxy ähnlich:


private static T getCachingProxy<T>(T service, ICacheService cacheService)
{
	var proxy = new CachingProxy<T>(cacheService, service);
	return proxy.GetTransparentProxy();
}

Sobald ich aber nun mit zwei Proxys arbeite, funktioniert der Aufruf nacher nicht mehr. Wenn ich nur einen Proxy verwende (egal welchen) funktioniert der Aufruf.

Die Hauptroutine ist die folgende:


IPageDataService pageService = ServiceLocator.Get<IPageDataService>();
List<IPage> pages = pageService.LoadAll();
und genau bei pageService.LoadAll(); erhalte ich dann die TargetException mit der Meldung "Object does not match target type.". Meine Proxies erben übrigens von System.Runtime.Remoting.Proxies.RealProxy.

Kennt sich da jemand aus und kann mir helfen?
Danke!

LG Michael

Thema: PictureBox auf SplitContainer
Am im Forum: Grafik und Sound

Hallo basi

Schau mal genau hin, der Splitcontainer beinhaltet 2 Panels. Und diesen Panels kannst du dann deine PictureBox hinzufügen.

LG Michi

Thema: Control wird auf der einen Page angezeigt und auf der anderen nicht
Am im Forum: Netzwerktechnologien

Hallo Community

Ich habe ein sehr komisches Problem. Ich lade auf zwei verschiedenen Seiten ein Control. Auf der einen Seite funktioniert alles perfekt, der Debuger geht durch die Funktionen OnPreRender und OnInit durch, die Anzeige ist gut. Auf der anderen Page hingegen werden beide Methoden nicht aufgerufen (der Breakpoint wird nicht angesprungen) und das Control wird nicht angezeigt. Ich setze aber vorher ein Property, was ohne Exception funktioniert.

Kennt ihr dieses Phänomen? Kann jemand helfen?

Liebe Grüsse
Michael

Thema: Visual Studio 2005 od. 2003?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Talla

Danke für deine Ausführungen. Also mit Generics habe ich mich mal kurz beschäftigt, resp. einen Webcast angeschaut. Solange sich sonst nichts geändert hat, denke ich, ich kann es wagen auf 2.0 zu programmieren.

Wie sieht es mit dem Web-Developer aus? VS03 hat bei HMTL-Darstellungen manchmal ziemlich mühe. Ich möchte das Design auch im VS machen, nicht noch den Dreamweaver bemühen - verstehe ich das richtig das die sogn. Masterpages das gleiche sind wie Templates im Dreamweaver?

LG Michael

Thema: Visual Studio 2005 od. 2003?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Community!!

Ich werde demnächst an einem Wettbewerb teilnehmen und muss mich entscheiden ob ich mit .NET2 oder mit 1.1 arbeiten will. Mein Problem ist, dass ich noch nie mit .NET2 gearbeitet habe und auch nicht mit dem VS05. Das Projekt wird eine Web-Anwendung sein.

Was würded ihr mir raten? Ich werde auch nicht mehr dazu kommen mich genügend einzuarbeiten. Sind die änderungen gravierend? Oder nur eher minimal und überwiegt der Nutzen von 05 extrem? Was wären die Vorteile?

Danke für eure Hilfe!!

LG Michael

Thema: Form automatisch anpassen
Am im Forum: GUI: Windows-Forms

Hallo

Ich würde die Funktion Graphics.MeasureString() verwenden, die gibt dir die Breite und Höhe des Textes zurück.

Thema: CreateInstance() liefert null zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

*peinlich*

Sorry, das war der Fehler

Danke für die Geduld

Das ist mir jetzt wirklich peinlich...

Thema: CreateInstance() liefert null zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die folgende Klasse liegt als .cs Datei in einem Ordner und wird zur Laufzeit Kompiliert. Das kompilieren läuft wunderbar, das Assembly ist ja danach nicht null und gibt den Typ "Skript" zurück...

using System;
using PluginScriptingFramework.Scripting;

namespace FrameWorkTest {

	/// <summary>
	/// Summary description for Skript.
	/// </summary>
	public class Skript : IScript {
		#region IScript Members

		public DateTime Datum {
			get { return new DateTime(2006,03,31,18,30,0); }
		}

		public string Autor {
			get { return "Michi"; }
		}

		public void Run() {
			SayHello("Hans");
			SayHello("Fritz");
		}

		public Version Version {
			get { return new Version(0, 1); }
		}

		public string Beschreibung {
			get { return "Beschreibung"; }
		}

		#endregion


		private void SayHello(string name) {
			Console.WriteLine("Hello {0}", name);
		}
	}
}

Thema: CreateInstance() liefert null zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Sie sind von MarshalByRefObject abgeleitet. Es funktioniert auch nicht, wenn ich einfach den DatenTyp Object nehme und keinen As-Operator verwende...

Was vieleicht noch interessant wäre ist, dass dies in einer gespiegelten AppDomain stattfindet. Doch nach mir dürfte das keinen Einfluss haben.

Thema: CreateInstance() liefert null zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community

Ich habe die folgende Methode:

private IList GetScriptsFromAssembly(Assembly asm) {
	ArrayList al = new ArrayList();
	foreach(Type type in asm.GetTypes()) {
		// auf diese Art ist obj = null
		MarshalByRefObject obj = asm.CreateInstance(type.FullName) as MarshalByRefObject;

		// auf diese Art ist obj ebenfalls = null
		obj = asm.CreateInstance(type.FullName, false, BindingFlags.Public |
			BindingFlags.Instance | BindingFlags.CreateInstance, null,
			new object[] {}, null, null) as MarshalByRefObject;

		if(obj is IScript)
			al.Add(obj);
	}
	return al;
}
Das Assembly, welches übergeben wird, ist nicht null. Es enthält ein Type namens "Skript". Und obwohl der Type "Skript" in der foreach-Schleife gefunden wird, liefert CreateInstance() null zurück. Warum? In der Doku steht, null wird zurückgeliefert, wenn der Type nicht gefunden wird. Doch wenn dies der Fall wäre, käme er ja nicht in die Schleife...

Hoffe ihr könnt mir helfen...

LG Michi

Thema: Assembly mittels Reflection laden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich möchte mein Problem ein wenig ausführlicher beschreiben:

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
setup.PrivateBinPath = "Plugin";
setup.ShadowCopyFiles = "true";

AppDomain app = AppDomain.CreateDomain("PluginDomain", AppDomain.CurrentDomain.Evidence, setup);

ArrayList assemblies = new ArrayList(app.GetAssemblies());
ArrayList plugins = new ArrayList();
foreach(Assembly asm in assemblies) {
	plugins.AddRange(GetPlugin(asm));
}
foreach(IPlugin p in plugins)
	Console.WriteLine("Plugin: " + p.Name);

setup.ApplicationBase ist das Verzeichnis in dem ich die Anwendung startete. Dort habe ich einen Unterordner "Plugin" in welchem ich eine Assembly habe. Doch die ArrayList assemblies hat nur eine Assembly drin, die mscorlib.dll! Warum? Ich blicke nicht durch...
Hoffe ihr könnt mir helfen

LG Michi

Thema: MSDN-Artikel drucken...
Am im Forum: Smalltalk

Der IE zeigt den Druck-Button an, Firefox nicht...

Thema: frage zur umsetzung
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Dann mach doch aus den beiden Oberflächen je ein Usercontrol, dem du den Status übergeben kannst. Dann kannst du zur Laufzeit einfach das UC auswechseln...

LG Michi

Thema: Assembly mittels Reflection laden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von talla
Hab grad deinen Blog gelesen brauchst du das Beispiel noch? Also so wie ich es momentan verwende kann ichs dir eh leider nicht überlassen, aber könnte dir ne kleine "Technologiedemo" zeigen wo ich das in den Anfängen mal selber ausprobiert habe wie das funktioniert.

Gruß Talla

Hallo Talla, ist das Angebot noch Aktuell? Ich würde gerne mal reinschauen! Habe mich den ganzen Tag mit AppDomains und Setups herumgeschlagen, aber irgendwie komme ich auf keinen grünen Zweig

Thema: C# Eigenschaften in UML als Operationen oder Attribute?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Community

Ich beginne nächste Woche mit meiner Facharbeit. Die Projektplanung mache ich grösstenteils in UML. Da die Arbeit bewertet wird frage ich mich nun, wie ich die Eigenschaften von Klassen in UML abbilden soll, da sie ja weder Attribute noch Operationen sind. Ich habe mal eine Grafik angehängt.
Was meint Ihr? Variante 1 oder 2?

Quellcode der Klasse:

public class VarianteN {

	private string name;
	private string vorname;

	public VarianteN() {
	}

	public string Name {
		get { return name; }
		set { name = value; }
	}

	public string Vorname {
		get { return vorname; }
		set { vorname = value; }
	}
}

LG Michael