Библиотека для использования SVG в Windows Forms / WPF?

К сожалению, объединение нескольких контекстов объектов в одно и то же соединение невозможно. Если вы хотите использовать именованные строки подключения из файла .config для определения своих соединений Entity Framework, каждый из них должен иметь другое имя. По соглашению это имя обычно является именем контекста:

<add name="ModEntity" connectionString="metadata=res://*/ModEntity.csdl|res://*/ModEntity.ssdl|res://*/ModEntity.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=SomeServer;Initial Catalog=SomeCatalog;Persist Security Info=True;User ID=Entity;Password=SomePassword;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<add name="Entity" connectionString="metadata=res://*/Entity.csdl|res://*/Entity.ssdl|res://*/Entity.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=SOMESERVER;Initial Catalog=SOMECATALOG;Persist Security Info=True;User ID=Entity;Password=Entity;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Однако, если вы закончите конфликты пространства имен, вы можете использовать любое имя, которое хотите, и просто передать правильное имя в контекст, когда он генерируется:

var context = new Entity("EntityV2");

Очевидно, что эта стратегия работает лучше всего, если вы используете либо заводскую, либо зависимую инъекцию для создания ваших контекстов.

Другим вариантом было бы создание каждого контекста целую строку соединения программно, а затем передать всю строку в конструктор (а не только имя).

// Get "Data Source=SomeServer..."
var innerConnectionString = GetInnerConnectionStringFromMachinConfig();
// Build the Entity Framework connection string.
var connectionString = CreateEntityConnectionString("Entity", innerConnectionString);
var context = new EntityContext(connectionString);

Как насчет чего-то вроде этого:

Type contextType = typeof(test_Entities);
string innerConnectionString = ConfigurationManager.ConnectionStrings["Inner"].ConnectionString;
string entConnection = 
    string.Format(
        "metadata=res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl;provider=System.Data.SqlClient;provider connection string=\"{1}\"",
        contextType.Name,
        innerConnectionString);
object objContext = Activator.CreateInstance(contextType, entConnection);
return objContext as test_Entities; 

.. . со следующим в вашем machine.config:

<add name="Inner" connectionString="Data Source=SomeServer;Initial Catalog=SomeCatalog;Persist Security Info=True;User ID=Entity;Password=SomePassword;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

Таким образом, вы можете использовать одну строку соединения для каждого контекста в каждом проекте на машине.

17
задан Xn0vv3r 22 January 2009 в 07:16
поделиться

3 ответа

, Ничего себе , я просто читаю что поддержки Inkscape, сохраняющие как XAML. Я не понял что до сих пор позор .

, Но это все еще не решает мои проблемы с WinForms...

10
ответ дан 30 November 2019 в 13:13
поделиться

Да, можно использовать ReaderSVG для получения WPF непосредственно от XAML.

Kent Boogaart имеет хороший пример из использования небольшого WPF в WinForms, который помог бы Вам решить аспект WinForms.

4
ответ дан 30 November 2019 в 13:13
поделиться

Я лично ненавижу отсутствие встроенной поддержки SVG в продуктах / инструментах разработки Microsoft. Я нашел две довольно полные, но все еще незрелые библиотеки SVG, которые, кажется, активны на момент написания этой статьи, но определенно нуждаются в участниках.

IIRC обе библиотеки выводят объект Drawing, который можно использовать непосредственно через класс Image; Вы разберетесь, они оба довольно просты в использовании.

7
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: