I am trying to write a simple c# program to just connect to my Solr instance. I have downloaded the SolrNet library and made reference to SolrNet.dll in my project. I am following some of the examples online but have been getting the error "ServiceLocationProvider must be set" when the last line of my code is executed. Following is my code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using CommonServiceLocator;
using SolrNet;
using SolrNet.Attributes;
using SolrNet.Impl;
using SolrNet.Impl.DocumentPropertyVisitors;
using SolrNet.Impl.FacetQuerySerializers;
using SolrNet.Impl.FieldParsers;
using SolrNet.Impl.FieldSerializers;
using SolrNet.Impl.QuerySerializers;
using SolrNet.Impl.ResponseParsers;
using SolrNet.Mapping;
using SolrNet.Mapping.Validation;
using SolrNet.Mapping.Validation.Rules;
using SolrNet.Schema;
using SolrNet.Utils;
namespace WebApplication1
{
public class Post
{
[SolrField("id")]
public string id { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
var connection = new SolrConnection("http://localhost:8983/solr/test");
Startup.Init<Post>(connection.ServerURL);
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Post>>();
}
}
}
Can someone tell me what am I missing?
Thank You
Related
I'm new on vs C#. I want to create dll file too use meta trader 5. my dll correct working in visual studio. But not working in meta trader.
Problem is Newtonsoft.Json packages.
Code
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Analiz
{
public class anlz
{
public static void metot()
{
var myDetails = JsonConvert.DeserializeObject<List<MyDetail>>(File.ReadAllText(#"C:\Users\Durak\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files\json\deneme.json"));
}
}
public class MyDetail
{
public string emirtipi{get;set;}
public string miktar{get;set;}
public string takip{ get; set;}
}
}
Error :
enter image description here
When creating a DLL for an external program which does not support Newtonsoft.Json, you cannot build it this way.
Remove the reference to Newtonsoft.Json from your program.
Add a reference to System.Runtime.Serialization
After that you can refactor your code to:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Analiz
{
public class anlz
{
public static void metot()
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(List<Test>));
List<MyDetail> myDetails = (List<Test>)serializer.ReadObject(new FileStream(#"C:\Users\Durak\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files\json\deneme.json", FileMode.Open, FileAccess.Read));
}
}
public class MyDetail
{
public string emirtipi{get;set;}
public string miktar{get;set;}
public string takip{ get; set;}
}
}
I found same question in stack over flow as here and tried same think but still I am receiving ApplicationContext.Current as null.
I am making the web service where I need to pull out a couple of pieces of data from an Umbraco database. I don't need any of the Umbraco views or any of that stuff. I'm new to the Umbraco Core libraries.
What I did was get a below reference to my new web service project
umbraco.dll
Umbraco.Core.dll
umbraco.DataLayer.dll
umbraco.editorControls.dll
umbraco.MacroEngines.dll
umbraco.providers.dll
Umbraco.Web.UI.dll
umbraco.XmlSerializers.dll
UmbracoExamine.dll
And the below class code where I am receiving ApplicationContext.Current as null
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Umbraco.Web.Mvc;
using umbraco.MacroEngines;
using Umbraco.Web;
using Umbraco.Web.WebApi;
using umbraco.NodeFactory;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using umbraco.cms.businesslogic.media;
using umbraco.BusinessLogic;
using System.Configuration;
using log4net;
using System.Reflection;
using Umbraco.Core.Logging;
using System.Web.Optimization;
using System.Web.Http;
using System.Data.SqlClient;
using System.Data;
using System.Web.Script.Serialization;
using System.Collections;
using System.Collections.Specialized;
using System.Web.UI.WebControls;
using Stripe;
using System.Web.UI;
using System.Text.RegularExpressions;
using System.Web.Configuration;
using System.Web.Security;
using Newtonsoft.Json;
using System.Net.Mail;
using System.Text;
using System.Net;
using System.IO;
public class RegisterUserController : UmbracoApiController
{
public static string UmbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
public static IMemberService memberService = ApplicationContext.Current.Services.MemberService;// Here I am getting ApplicationContext.Current as null
}
But I am calling this class I am getting ApplicationContext.Current as null.
So because of that I have Many methods in this class which works on memberService and due to this null reference they are not working. Even other methods which are not using member service are not being called.
For me, the code below seems to work.
public class TestApiController : UmbracoApiController
{
private static string _umbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
private static IMemberService _memberService = global::Umbraco.Core.ApplicationContext.Current.Services.MemberService;
public int GetTest()
{
var memberCount = _memberService.Count();
return memberCount;
}
}
If the above code isn't working for you e.g. with AJAX, try the below code:
public class TestApiController : UmbracoApiController
{
public int GetTest()
{
var ms = Services.MemberService;
return ms.Count();
}
}
I am getting 'Method must have a return type' whenever i tried to run this project. I would appreciate your help as i have been struggling to resolve this issue to no avail. Thank you
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.Enums;
using System.Threading;
namespace AppiumTest
{
public class Class1
{
AppiumDriver driver;
TestMethod1()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("MobileCapabilityType.deviceName", "Test");
capabilities.SetCapability("MobileCapabilityType.deviceName", "Test");
capabilities.SetCapability("MobileCapabilityType.platformVersion", "Emulator");
capabilities.SetCapability("MobileCapabilityType.platformName", "Android");
capabilities.SetCapability("MobileCapabilityType.appPackage", "");
capabilities.SetCapability("MobileCapabilityType.appActivity", "");
driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1.4723/wd/hub"), capabilities);
Thread.Sleep(5000);
driver.FindElementById("com.paypoint.energycontrols:id/btn_sign_in").Click();
driver.FindElement(By.Id("com.paypoint.energycontrols:id/et_email")).SendKeys("");
driver.FindElement(By.Id("com.paypoint.energycontrols:id/et_password")).SendKeys("");
driver.FindElementById("com.paypoint.energycontrols:id/btn_show_pass").Click();
driver.FindElementById("com.paypoint.energycontrols:id/btn_sign_in").Click();
}
}
}
Your method declaration has only method name. In C# methods must have return type and a name. Add a void keyword before TestMethod1():
void TestMethod1() { ... }
A bit rusty here with regards to WCF Services.
I have a custom class named cSecurity.cs which does some custom functions.
I want to use this custom class inside my Service:
This is the App.svc.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace AppServices
{
public class App : IApp
{
public cSecurity _csec;
public string GetItems(int agentID, string agentName)
{
// Need to use some functions from the cSecurity class here???
return _csec.getItems();
}
}
}
This is the cSecurity.cs class:
using System.Collections;
using System.Configuration;
using System.Net;
namespace AppServices
{
public class cSecurity
{
// Some functions defined here....
public string getItems(){
return string.Empty;
}
}
}
But I am getting an error on the line:
public cSecurity _csec;
"The type or namespace name 'cSecurity' could not be found."
This seems pretty trivial but I seem to be lost here.
Appreciate any insight. Thanks.
For some reason, the solution for this was for me to close and restart VS. Not sure what caused the class for it to be not referenced by VS.
I' trying to do port forwarding. I've done following:
NATUPNPLib.dll was added to references
NATUPNPLib was added to using section of page
Following codes were written
But a null reference exception thrown
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Net.Sockets;
using System.Net;
using NATUPNPLib;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
UPnPNATClass upnpnat = new UPnPNATClass();
IStaticPortMappingCollection mappings = upnpnat.StaticPortMappingCollection;
foreach (IStaticPortMapping map in mappings)
{
Console.WriteLine(map.ExternalIPAddress);
}
Console.ReadKey();
}
}
}
How can I overcome this problem?