Създаване на „низ за свързване“ в CRM SDK 4 програмно

Пиша приложение, което се свързва със CRM с помощта на CRM SDK 4. В първата версия използвах app.config файл (секция „connectionStrings“)

<connectionStrings>
  <add name="mycrm" connectionString="Authentication Type=Integrated; Server=http://ServerName/OrganizationName;"/>
</connectionStrings>

и (в код):

DataContext ctx = new DataContext("mycrm");

и работи добре. Но сега приложението трябва да позволи на потребителя да избере тип удостоверяване, да въведе име на сървър, потребителско име, парола и т.н. Създадох низ за връзка, но не знам как да го използвам. Обектите DataContext и CrmConnection, AFAIK, имат само конструктори с име на connectionString (от app.config файл) като параметър. Когато се опитам да използвам моя connectionString, получавам изключение:

    System.ApplicationException was unhandled

Не, другата публикация е грешна - НЕ използвайте отражение. Правилният начин да направите това е да използвате CrmConnection.Parse(customConnectionString) за изграждане на crm връзка. След това можете да конструирате контекста на данните с тази връзка в конструктора.


person Marcin Robaszyński    schedule 04.06.2010    source източник


Отговори (1)


var crm = нов XrmDataContext(CrmConnection.Parse(customConnectionString));

Шан МакАртър

www.shanmcarthur.net

Message="Не може да се зареди името на низа за връзка 'Authentication Type=Integrated; Server=http://ServerName/OrganizationName; '" Source="Microsoft.Xrm.Client" StackTrace: в Microsoft.Xrm.Client.CrmConnection.GetConnectionStringFrom(String connectionStringName) в Microsoft.Xrm.Client.CrmConnection..ctor(String connectionStringName, String connectionString) в Microsoft.Xrm. Client.CrmConnection..ctor(String connectionStringName) в ARP.EstateExtensions.PaymentsUploader.MainWindows..ctor(String connectionString) в C:\Users\mrobaszynski\Desktop\PU\PaymentsUploader\MainWindows.xaml.cs:ред 38 в ARP. EstateExtensions.PaymentsUploader.LoginWindow.bOK_Click(Изпращач на обект, RoutedEventArgs e) в C:\Users\mrobaszynski\Desktop\PU\PaymentsUploader\LoginWindow.xaml.cs:ред 92 в System.Windows.EventRoute.InvokeHandlersImpl(Източник на обект, RoutedEventArgs args , Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) в System.Windows.Controls.Button.OnClick() в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) в System.Windows.RoutedEventArgs. InvokeHandler(Delegate handler, Object target) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) в System.Windows.UIElement .OnMouseUpThunk(Изпращач на обект, MouseButtonEventArgs e) в System.Windows.RoutedEventArgs.InvokeHandler(Манипулатор на делегат, цел на обект) в System.Windows.EventRoute.InvokeHandlersImpl(Източник на обект, RoutedEventArgs аргументи, Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl (Изпращач на DependencyObject, аргументи RoutedEventArgs) в System.Windows.UIElement.RaiseEvent(аргументи RoutedEventArgs, Boolean trusted) в System.Windows.Input.InputManager.ProcessStagingArea() в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) в System.Windows.Interop. HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 колело) в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, обработено ) в системата. Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& обработено) в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& обработено) в MS. Win32.HwndSubclass.DispatcherCallbackOperation(Object o) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Делегиране на catchHandler) в System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter) в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wtrParam, lParam) в MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) в System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(MSG& msg) a t System.Windows.Threading.Dispatcher.PushFrameImpl(рамка DispatcherFrame) в System.Windows.Application.RunInternal(прозорец на прозорец) в PaymentsUploader.App.Main() в C:\Users\mrobaszynski\Desktop\PU\PaymentsUploader\obj\ Release\App.g.cs:line 0 в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback обратно извикване, състояние на обект) в System.Threading.ThreadHelper.ThreadStart() InnerException: System.NullReferenceException Message="Препратката към обект не е зададена на екземпляр на обект." Source="Microsoft.Xrm.Client" StackTrace: в Microsoft.Xrm.Client.CrmConnection.GetConnectionStringFrom(String connectionStringName) InnerException:

person Community    schedule 04.06.2010