So it sounds like it's something to do with the factory facility. I
would suggest not using it there, because from what I can tell, it's
intended to be used more as a mechanism for configuring types that
require configuration via method invocations.

This might help clear that up:
http://blog.bittercoder.com/PermaLink,guid,07925133-ae33-41dd-bc50-2b49a5434e19.aspx

Good luck!

On Mon, Oct 13, 2008 at 5:33 PM, George Mauer <[EMAIL PROTECTED]> wrote:
>
> Yes, when registered in a string format these values work just fine.
> It seems to definitely be a casting issue.
>
> On Oct 13, 4:13 pm, "Shawn Hinsey" <[EMAIL PROTECTED]> wrote:
>> Have you tried replacing the component reference with a string in
>> Timespan format, just to make sure nothing else is awry?
>> Alternatively, try configuring the referenced TimeSpan object with a
>> string via the parameters and lose the factory stuff. If that works,
>> at least you've isolated the issue, and someone more familiar with the
>> factory facility can probably chime in with the fix.
>>
>> On Mon, Oct 13, 2008 at 5:11 PM, George Mauer <[EMAIL PROTECTED]> wrote:
>>
>> > I can't be 100% sure since I'm still very new at all this but I would
>> > imagine not since I can do
>> > IoC.Container.Resolve("time_alert_dialogs_remain_on_screen") with no
>> > problem
>>
>> > On Oct 13, 4:02 pm, "Shawn Hinsey" <[EMAIL PROTECTED]> wrote:
>> >> I'm not very familiar with the factory facility is why I ask. Is it
>> >> possible that the object isn't in a valid state at dependency
>> >> resolution time?
>>
>> >> On Mon, Oct 13, 2008 at 5:01 PM, Shawn Hinsey <[EMAIL PROTECTED]> wrote:
>> >> > How are you setting the value of time_alert_dialogs_remain_on_screen?
>>
>> >> > On Mon, Oct 13, 2008 at 4:59 PM, George Mauer <[EMAIL PROTECTED]> wrote:
>>
>> >> >> I want the value to come from a property on a Settings class that gets
>> >> >> passed around to a related group of objects.  I would prefer the
>> >> >> Settings class to be strongly typed.  It would seem to me like that's
>> >> >> a pretty common way of doing things, if I'm going about it the wrong
>> >> >> way by all means tell me, since I'm just pulling this stuff out of my
>> >> >> butt.
>>
>> >> >> On a side note, I'm also running into this issue when the constructor
>> >> >> takes an Int32 and, I assume I will run into it with any non-reference
>> >> >> object.
>>
>> >> >> Without digging into the code, it seems like the input of a parameter
>> >> >> is assumed to be either a reference type or a string and no attempt at
>> >> >> casting is done.  I would be surprised if someone hasn't run into this
>> >> >> annoyance before and written a module to solve it so if any can point
>> >> >> me in the right direction it would be greatly appreciated.
>>
>> >> >> On Oct 13, 3:51 pm, "Shawn Hinsey" <[EMAIL PROTECTED]> wrote:
>> >> >>> I've had luck with creating timestamps using the format "HH:MM:SS" in
>> >> >>> the component parameter configuration, but I've never tried that
>> >> >>> approach. Do you need to have a separate component for the timespan?
>> >> >>> You could put the value in a property if it's reused.
>>
>> >> >>> On Mon, Oct 13, 2008 at 4:07 PM, George Mauer <[EMAIL PROTECTED]> 
>> >> >>> wrote:
>>
>> >> >>> > I have a variety of classes in my project that take a TimeSpan in 
>> >> >>> > the
>> >> >>> > constructor which is to be provided from a settings class.  So as an
>> >> >>> > example, I have things wired as follows
>>
>> >> >>> > <component id="timed_alert_dialog"
>> >> >>> >                
>> >> >>> > service="DriverInterface2.UI.Presentation.UIInterfaces.ITimedDialog,
>> >> >>> > DriverInterface2.UI.Presentation"
>> >> >>> >                
>> >> >>> > type="DriverInterface2.UI.WinForms.Dialogs.AlertDialog,
>> >> >>> > DriverInterface2.UI.WinForms">
>> >> >>> >        
>> >> >>> > <parameters><timespan>${time_alert_dialogs_remain_on_screen}</
>> >> >>> > timespan></parameters>
>> >> >>> > </component>
>>
>> >> >>> > <component id="time_alert_dialogs_remain_on_screen"
>> >> >>> >                        type="System.TimeSpan"
>> >> >>> >                        factoryId="global_settings"
>> >> >>> > factoryCreate="get_TimeAlertDialogsRemainOnScreen"  />
>>
>> >> >>> > But when I try to resolve timed_alert_dialog I get the following
>> >> >>> > error:
>> >> >>> > {"Could not convert from '${time_alert_dialogs_remain_on_screen}' to
>> >> >>> > System.TimeSpan"}
>> >> >>> >  Inner Exception: {"Input string was not in a correct format."}
>>
>> >> >>> > Some things I have learned while experimenting:
>> >> >>> > I can resolve time_alert_dialogs_remain_on_screen (the TimeSpan)
>> >> >>> > properly with no problem.
>> >> >>> > If I change the constructor to take an object that is later cast to 
>> >> >>> > a
>> >> >>> > TimeSpan then it works fine also.
>>
>> >> >>> > This last point indicates an annoying yet quick way to resolve the
>> >> >>> > situation which is for obvious reasons, less than ideal.  What is 
>> >> >>> > the
>> >> >>> > cause of the problem and is there any way I can resolve it for real?
>>
>> >> >>> > Thanks a lot,
>> >> >>> > George Mauer
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to