Hello Jeff

I think I have the same problem as adchased, I've -

- downloaded and built the google-api-adwords-dotnet project & added a
reference to the dll
- added AdWordsUser.cs to my ASP.NET web project
- amended the web.config so it includes the custom configuration
'adwordsHeaders' section
- added login details that have worked in other test scripts

but when I try and make a call to CampaignService I get the following
null

System.ArgumentNullException: Value cannot be null. Parameter name:
type at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at com.google.api.adwords.lib.AdWordsUser.getService(String name) at
CampaignServiceFuncs.AddCampaign()

How can I switch to WSDL?

Thanks

JN


On Dec 22 2008, 8:55 pm, adchased <adcha...@googlemail.com> wrote:
> Thanks Jeff, I switched to WSDL now and it's working great!
>
> ASP.NET Example:
> this.headers = (Hashtable)
> System.Web.Configuration.WebConfigurationManager.GetSection
> ("adwordsHeaders");
> AdWordsUser user = new AdWordsUser(headers);
>
> Cheers,
> Andreas
>
> On Dec 19, 5:23 pm, AdWords API Advisor <adwordsapiadvi...@google.com>
> wrote:
>
> > 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