Hello,

 There shouldn't be an issue with that code with the unmodified .NET
client library (it's used successfully by a decent number of
developers) and it's not something I could replicate. I can't tell you
exactly what's causing the GetType() call to return null in your
modified version of the code. I'd imagine that some possible causes
would be that the namespace for the assembly being loaded with GetType
() is somehow different (did you change any of the namespaces?) or
perhaps you're storing your custom AdUser() class in a different
location relative to the other assemblies and GetType() is relying
somehow on the location of the calling assembly to dynamically load
the helper assembly.

 But really, I'd suggest trying to use the standard .NET client
library. If you created a new class to handle reading the header
information differently, then you can just try using one of the
alternate constructors for AdWordsUser() that doesn't attempt to read
the header information from the application's config file, but instead
takes it as strings or a hash.

 Or, as another alternative, you can just forgo using the .NET client
library entirely and generate the .NET classes yourself from the
WSDLs--VisualStudio.NET makes that fairly easy, and that's all the
client library is (with a few niceties on top).

Cheers,
-Jeff Posnick, AdWords API Team


On Dec 18, 4:39 pm, adchased <adcha...@googlemail.com> wrote:
> Hi Jeff,
>
> yes, I created the AdUser Class, it's identical to AdWordsUser with
> one exception: It's an ASP.NET Application so I don't have an
> App.Config file. That's why my AdUser Class is reading from the
> Web.Config file via
> System.Web.Configuration.WebConfigurationManager.GetSection
> ("adwordsHeaders");. Everything else is identical.
>
> I also checked if it's reading the values correctly and it does. I'm
> however stuck at
>
> Type t = Type.GetType(PACKAGE_PREFIX + version + "." + name);
>
> (t = null)
>
> Thanks,
> Andreas
>
> On Dec 18, 5:48 pm, AdWords API Advisor <adwordsapiadvi...@google.com>
> wrote:
>
> > Hello,
>
> >  I'm afraid I don't understand. Are you using the code provided in
> > the .NET client library? There's no mention of an AdUser class there,
> > so I'm not sure what you mean when you say it's identical to
> > AdWordsUser. Is this a custom class you've created?
>
> > Cheers,
> > -Jeff Posnick, AdWords API Team
>
> > On Dec 18, 4:05 am, adchased <adcha...@googlemail.com> wrote:
>
> > > Hello Jeff,
>
> > > yes. AdUser and AdWordsUser is in fact identical. I just had to change
> > > the header retrival to
>
> > > -------
> > > // Reads headers from App.config file
> > > this.headers = (Hashtable)
> > > System.Web.Configuration.WebConfigurationManager.GetSection
> > > ("adwordsHeaders");
> > > -------
>
> > > As ASP.NET is using a web.config file instead of an App.config.
> > > Everything else is the same..
>
> > > On Dec 18, 12:11 am, AdWords API Advisor
>
> > > <adwordsapiadvi...@google.com> wrote:
> > > > Hello,
>
> > > >  Are you sure that that's the exact code you're running? You make
> > > > reference to an AdUser object, for instance, but the name of the class
> > > > in the .NET Client Library is AdWordsUser.
>
> > > > Cheers,
> > > > -Jeff Posnick, AdWords API Team
>
> > > > On Dec 17, 5:45 pm, adchased <adcha...@googlemail.com> wrote:
>
> > > > > Hello,
>
> > > > > I'm using C# (within ASP.NET) for the Adwords API, this is how far I
> > > > > am until now:
>
> > > > > ------------------------------------------------------------------------------------------
> > > > > using com.google.api.adwords.lib;
> > > > > using com.google.api.adwords.v12;
> > > > > ...
>
> > > > > void AdApiTesting()
> > > > > {
> > > > >         AdUser user = new AdUser();
> > > > >         user.useSandbox();  // use sandbox
> > > > >         CampaignService campaignService =  (CampaignService)
> > > > > user.getService("CampaignService");}
>
> > > > > ------------------------------------------------------------------------------------------
>
> > > > > It is crashing when I try to execute this line:
> > > > > CampaignService campaignService =  (CampaignService)user.getService
> > > > > ("CampaignService");
>
> > > > > Specificly here:
> > > > > ------------------------------------------------------------------------------------------
> > > > > public object getService(String name)
> > > > >         {
> > > > >             object o = services[name];
> > > > >             if (null != o)
> > > > >             {
> > > > >                 return o;
> > > > >             }
> > > > >             Type t = Type.GetType(PACKAGE_PREFIX + version + "." +
> > > > > name);
> > > > >             o = Activator.CreateInstance(t);
> > > > > ------------------------------------------------------------------------------------------
>
> > > > > t is null which is leading to an exception.
>
> > > > > ------------------------------------------------------------------------------------------
> > > > > PACKAGE_PREFIX = "com.google.api.adwords."
> > > > > version = v12
> > > > > name = CampaignService
> > > > > ------------------------------------------------------------------------------------------
>
> > > > > These are my settings for the adwordsHeader:
> > > > > ------------------------------------------------------------------------------------------
> > > > >   <adwordsHeaders>
> > > > >     <add key="email" value="mym...@gmail.com"/>
> > > > >     <add key="password" value="mypasswordXX"/>
> > > > >     <add key="useragent" value="demotest"/>
> > > > >     <add key="developerToken" value="awapi.d...@gmail.com++eur"/>
> > > > >     <add key="applicationToken" value="1234567890123456789012"/>
> > > > >     <!-- Use either clientEmail or clientCustomerId (optional) -->
> > > > >     <add key="clientEmail" value="client_1+mym...@gmail.com"/>
> > > > >     <!-- <add key="clientCustomerId"
> > > > > value="INSERT_CLIENT_CUSTOMER_ID_HERE"/> -->
> > > > >     <!-- Use alternateUrl to make calls against Sandbox (optional) -->
> > > > >     <add key="alternateUrl" value="https://sandbox.google.com/"/>
> > > > >     <!-- Specify absolute path of the directory to which SOAP logs
> > > > > should be
> > > > >          saved (optional) -->
> > > > >     <add key="logPath" value="C:\\Temp"/>
> > > > >   </adwordsHeaders>
> > > > > ------------------------------------------------------------------------------------------
>
> > > > > Could anyone help me out and tell me why t is NULL?
>
> > > > > Thanks a lot!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to 
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to